2015-04-08 2 views
1

я получаю эту ошибкуЧто я делаю неправильно в своем бот-коде PIRC?

1428460892508 :[email protected] PRIVMSG #botte 
ster :!pc.babel 
1428460892510 ### Your implementation of PircBot is faulty and you have 
1428460892510 ### allowed an uncaught Exception or Error to propagate in your 
1428460892511 ### code. It may be possible for PircBot to continue operating 
1428460892511 ### normally. Here is the stack trace that was produced: - 
1428460892511 ### 
1428460892511 ### java.lang.NoClassDefFoundError: org/jsoup/Jsoup 
1428460892512 ###  at MyBot.onMessage(MyBot.java:20) 
1428460892512 ###  at org.jibble.pircbot.PircBot.handleLine(PircBot.java:99 
0) 
1428460892512 ###  at org.jibble.pircbot.InputThread.run(InputThread.java:9 
2) 
1428460892512 ### Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup 
1428460892513 ###  at java.net.URLClassLoader.findClass(URLClassLoader.java 
:381) 
1428460892513 ###  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 

1428460892513 ###  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.j 
ava:331) 
1428460892514 ###  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

1428460892514 ###  ... 3 more 

из следующего кода.

import org.jibble.pircbot.*; 
import org.jsoup.*; 
import org.jsoup.helper.*; 
import org.jsoup.nodes.*; 
import org.jsoup.select.*; 
import java.io.*; 

public class MyBot extends PircBot { 
    public MyBot() { 
     this.setName("^MonstaBot^"); 
    } 
    public void onMessage(String channel, String sender, String login, String hostname, String message) { 
     if(sender.equalsIgnoreCase("monstarules") && message.equalsIgnoreCase("!quit")){ 
      quitServer("Good bye!"); 
     } 
     if(message.equalsIgnoreCase("!pc.babel")) { 
      String playerList = new String(); 
      Document doc = null; 
      try { 
       doc = Jsoup.connect("http://aos075.aloha.pk:34886/").get(); 
       String text = doc.html(); 
       FileWriter fw = new FileWriter("temp1.txt"); 
       fw.write(text); 
       fw.close(); 
       BufferedReader br = new BufferedReader(new FileReader("temp1.txt")); 

       for(int i = 0; i < 103; ++i) 
       br.readLine(); 
       text = br.readLine(); 
       text = text.trim(); 
       text = text.replaceAll("<br>", "").replaceAll("<p>", "").replaceAll("</p>", ""); 
       text = text.replace("Hello! Welcome to the status server for aloha.pk tower of babel. ", ""); 
       int stlg = text.length() - 1; 

       for(int i = (stlg - 22); stlg > i; i++) { 
        String tw = "" + text.charAt(i); 
        playerList = playerList + tw; 
       } 
       sendMessage(channel, playerList); 
      } 
      catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

По какой-то причине я чувствую, что это очень просто. Оригинальный код, который я написал, что работает, является:

import java.io.*; 
import org.jsoup.*; 
import org.jsoup.helper.*; 
import org.jsoup.nodes.*; 
import org.jsoup.select.*; 

public class Scraper { 
    public static void derp() throws IOException { 
     String playerList = new String(); 

     Document doc = null; 
     try { 
      doc = Jsoup.connect("http://aos075.aloha.pk:34886/").get(); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
     String text = doc.html(); 

     FileWriter fw = new FileWriter("temp1.txt"); 
     fw.write(text); 
     fw.close(); 

     BufferedReader br = new BufferedReader(new FileReader("temp1.txt")); 

     for(int i = 0; i < 103; ++i) 
     br.readLine(); 
     text = br.readLine(); 
     text = text.trim(); 
     text = text.replaceAll("<br>", "").replaceAll("<p>", "").replaceAll("</p>", ""); 
     text = text.replace("Hello! Welcome to the status server for aloha.pk tower of babel. ", ""); 
     int stlg = text.length() - 1; 

     for(int i = (stlg - 22); stlg > i; i++) { 
      String tw = "" + text.charAt(i); 
      playerList = playerList + tw; 
     } 
     System.out.print(playerList); 
    } 
    public static void main(String[] args) throws IOException { 
     derp(); 
    } 
} 

исходный код работает, однако всякий раз, когда я пытаюсь сделать это способ и вставить его в botcode, я всегда получаю ошибки, и когда я их исправить, больше появляется, когда я пытаюсь вызвать триггер для !pc.babel. Может ли кто-нибудь помочь мне понять ошибку?

+1

Включите соответствующий код. – hjpotter92

+0

Благодаря тому, кто сделал предложенное редактирование – Monstarules

ответ

2

Эта ошибка является ключом, java.lang.NoClassDefFoundError: org/jsoup/Jsoup. Это означает, что JSoup JAR не относится к вашим классам классов приложений. Как вы запускаете и управляете своим ботом? Как это отличается от того, как вы начинаете и запускаете свой исходный код?

+0

Я запускаю свой бот через CMD, и я использую команду javac. Вы предлагаете мне добавить еще один класс, отличный от JDK? – Monstarules

+0

Большое вам спасибо! Он работал после того, как я инициализировал основную часть обоими банками – Monstarules

Смежные вопросы