Der gefürchtete java.lang.NoClassDefFoundError

Ich habe viele der vorhandenen Threads über diesen Fehler durchgesehen, aber immer noch kein Glück. Ich versuche nicht einmal, ein Glas zu verpacken oder Verpackungswerkzeuge von Drittanbietern zu verwenden. Ich rufe einfach in Eclipse auf (funktioniert hervorragend) und versuche dann, dieselbe App über die Befehlszeile an derselben Stelle auszuführen, an der sie erstellt wurde (und erhalte diesen Fehler). Mein Ziel ist es, den bin-Ordner zu komprimieren und ihn über ein Befehlszeilenskript zur Ausführung durch eine andere Person zu senden. Ein paar Details:

Es ist eine Kommandozeilen-App und ich benutze die commons-lang-2.4.jar für String-Utilities. Das ist die Datei, die nicht gefunden werden kann (spezifiziert "java.lang.NoClassDefFoundError: org / apache / commons / lang / StringEscapeUtils")Ich habe dieses Glas in meinem lib-Ordner und habe es meinem Erstellungspfad in Eclipse hinzugefügt, indem ich mit der rechten Maustaste auf "Erstellungspfad -> Zum Erstellungspfad hinzufügen" geklickt habe.Die .classpath-Datei sieht korrekt aus und enthält den Verweis auf das jar, aber ich gehe davon aus, dass die Datei nur von Eclipse verwendet wird (enthält diese Zeile:<classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>)Könnte dies mit der Einstellung des Eclipse-Arbeitsverzeichnisses zusammenhängen? Ich habe einige interne Vorlagendateien, die ich erstellt habe und die sich unter src / templates befinden. Die einzige Möglichkeit, um diese anzuzeigen, besteht darin, das Arbeitsverzeichnis des Projekts auf AppName / src zu setzen. Vielleicht sollte ich die woanders hinstellen?

Lassen Sie mich wissen, wenn zusätzliche Informationen helfen würden. Sicher ist das etwas Einfaches, aber ich habe zu diesem Zeitpunkt zu viel Zeit damit verschwendet. Dies erinnert mich daran, warum ich Java ursprünglich in '05 oder so verlassen habe ...

Antworten auf die Frage(7)

Ihre Antwort auf die Frage