-3

私は自分のプログラムを再評価しましたが、それはただ爆発しました。私が変更したのは String.format() の戻り値だけで、それらの変更を元に戻してもこのエラーは消えませんでした。エラーを調査すると、Maven に関連しているように見えますか? しかし、プロジェクトをビルドするためにANTを使用しています。

Exception in thread "Thread-2" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file InHouseLeague/Workers/BotListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.schwering.irc.moep.MoepIRC.run(MoepIRC.java:831)
at java.lang.Thread.run(Thread.java:722)

参照しているコード (私は何週間も触れていません)

public void run() {
    updateTab(Util.CONSOLEWINDOWINDEX, "# Trying to connect to "+ host, 
        serverColor);
    enableConnectMenuItem(false);
    username = username.toLowerCase();
    if (!useSSL) {
    conn = new BotConnection(host, portMin, portMax, password, nickname, 
        username, realname);
    } else {
    BotSSLConnection sslconn = new BotSSLConnection(host, portMin, portMax, 
        password, nickname, username, realname);
    if (!autoAcceptSSLCerts)
        sslconn.addTrustManager(new AskTrustManager());
    conn = sslconn;
    }
    conn.addIRCEventListener(new BotListener(this)); //ERROR POINTS TO HERE
    conn.setColors(true); 
    conn.setPong(false); 
    conn.setDaemon(true);
    try {
    conn.connect();
    this.isConnected = conn.isConnected();
    } catch (Exception exc) {
    String reason = "";
    if (exc.getMessage() != null) {
        reason = ": "+ exc.getMessage();
    }
    updateTab(Util.CONSOLEWINDOWINDEX, "# Couldn't connect"+ reason, 
        serverColor);
    enableConnectMenuItem(true);
    exc.printStackTrace();
    this.isConnected = false;
    }
}

これが起こる前に私が行った変更:

から:

    @Override
    public String toString() {
        String returnStr = String.format("%s(ELO: %d):", getTeamName(), teamELO);
        for (IPlayer player : roster) {
            returnStr = String.format("%s %s", returnStr, player.getUserName());
        }
        return returnStr;
    }

    public String toString() {
        String returnStr = String.format("%s[%d]:", getTeamName(), teamELO);
        for (IPlayer player : roster) {
            returnStr = String.format("%s %s;", returnStr, player.getUserName());
        }
        return returnStr;
    }
4

1 に答える 1

0

診断は次のとおりです。

クラス ファイル InHouseLeague/Workers/BotListener のネイティブまたは抽象ではないメソッドの不在コード属性

コードの変更がクラス InHouseLeague.Workers.BotListener にあったのか、それともライブラリ クラスなのかについて、あなたは言いませんでした。とにかく、通常、コードを変更しても、コンパイラはコード属性のないメソッドを生成できません。クラス ファイルが別の方法で壊れていました。たとえば、ハードウェア デバイス エラーでした。

于 2013-01-02T05:10:42.207 に答える