Ich habe festgestellt, dass ich manchmal einen NoClassDefFound-Fehler erhalte, wenn Code mit einer inkompatiblen Version der zur Laufzeit gefundenen Klasse kompiliert wird. Der spezielle Fall, an den ich mich erinnere, betrifft die Apache-Axis-Bibliothek. Es gab tatsächlich 2 Versionen auf meinem Laufzeit-Klassenpfad und es wurde die veraltete und inkompatible Version abgeholt und nicht die richtige, was einen NoClassDefFound-Fehler verursacht. Dies war in einer Befehlszeile app, wo ich einen Befehl ähnlich wie diese verwendet wurde.
set classpath=%classpath%;axis.jar
Ich habe es geschafft, die richtige Version zu finden, indem ich sie benutzt habe:
set classpath=axis.jar;%classpath%;
1 Stimmen
Ich glaube, es kann auch passieren, wenn Sie Ihr Java-Programm nicht mit der richtigen Syntax ausführen. Zum Beispiel müssen Sie Ihre Klasse aus dem Root-Bin-Ordner mit dem vollständigen Paketnamen aufrufen (z. B. my.package.myClass). Ich würde genauer sein, wenn ich könnte, aber ich bin kein großer Java-Kenner. Ich kann mich nur daran erinnern, dass ich das ein paar Mal vermasselt habe.