NoClassDefFoundError ohne Klasse name
Ich versuche zu laufen java-task von ant. Ich versuche zu laufen "org.apache.tools.ant.starten.Launcher" - Klasse. Ich erhalte immer "NoClassDefFoundError" ohne Klassennamen angegeben wird. Ich bin auch immer eine "ClassNotFoundException" zusammen mit, dass die Anzeige eine Meldung "could not find main class: . Programm wird beendet". Hier ist ein Ausschnitt der Fehler
[java] Exception in thread "main" java.lang.NoClassDefFoundError:
[java] Caused by: java.lang.ClassNotFoundException:
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
[java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
[java] Could not find the main class: . Program will exit.
[java] Java Result: 1
Nun bin ich zu versuchen, eine ant-Klasse aus einer Ameise ein Glas, und ich die genaue Angabe des classpath, wo diese class-Datei befindet, mithilfe des "classpathref" - Attribut, aber ich bekomme immer noch diese Meldung. Ich habe in der ant jar zu prüfen, das Manifest und der "main" - Klasse angegeben ist richtig (es ist "org.apache.tools.ant.starten.Launcher") . Ich habe erschöpft alle meine Ressourcen. Bitte helfen Sie mit ! ! !
ps: Meine Umgebung ist Eclipse auf Ubuntu 9.04
InformationsquelleAutor Seagull | 2010-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich dein classpath falsch konfiguriert.
Mindestens der CLASSPATH sollte beinhalten:
(aus der ant manual)
Auch Sie zu sein scheinen Relaunch Ameise im aktuellen Verzeichnis (ausführen die gleichen build.xml). Vielleicht werden Sie wollen, stellen Sie die "dir" - Eigenschaft.
InformationsquelleAutor kritzikratzi
Sieht es aus wie der Ant-task versucht, die Java ausführen, aber es ist irgendwie ein leerer string übergeben, um die JVM wie der name der Klasse, zu laufen. Ich kann die gleiche stacktrace, wenn ich die JVM direkt mit zitiert, leere Zeichenfolge:
(Dies ist unter Windows, aber ich glaube nicht, dass macht einen großen Unterschied.)
Kann ich nur empfehlen folgenden bis auf Alexander Pogrebnyak Kommentar zu akf ' s Antwort. Vielleicht
webtest.lib
Eigenschaft hat Platz in Ihr?Außerdem gibt es einen guten Grund für den Aufruf
ant
direkt über java statt mit dem Ameise Aufgabe?InformationsquelleAutor Luke Woodward
https://blogs.oracle.com/sreekanth/entry/java_lang_noclassdeffounderror_org_codehaus
Kurzem, wenn ich versuche zu laufen einige Maven-Skripte, ich bekomme diese exception:
Nachdem er einige Zeit versuchen verschiedene Kombinationen , fand ich, dass dies ist, weil ich beide M2_HOME und M3_HOME Satz in meinem Umgebungsvariablen.Einmal habe ich entfernt M2_HOME von meiner Umwelt-Variablen, die ich bekommen konnte, diese arbeiten wieder zurück.Kann sein, dass das sparen könnten einige schwere Zeit für einige.
InformationsquelleAutor Langen Mallya
Kann dies eine irreführende Fehlermeldung, die nicht wirklich über eine Klasse fehlt im classpath. Wenn Sie Tomcat verwenden, kann es aufgrund fehlender conf-Dateien in $CATALINA_BASE/conf
Könnte es auch sein, eine falsch konfigurierte ant-installation, überprüfen Sie bitte Ihre JAVA_HOME und ANT_HOME env-Variablen oder versuchen Sie eine andere ant-installation.
InformationsquelleAutor Alb
Ant launcher erwartet die folgenden Parameter
Bin ich affraid wir können nicht fortfahren, beantworten Sie, wenn Sie nicht fügen Sie Ihre ganze build.xml Datei.
Versuchen Sie einfach, Ihre vollständige Beispiel-wie folgt:
Wäre dies sehr hilfreich sein, um Sie mit einem möglichen Missverständnis.
Hoffe, das hilft,
Ernani
InformationsquelleAutor Ernani Joppert
Dieser Linie:
sieht es aus, als ob Ihr Anruf zu java.exe ist die Suche nach einem
.
wo es erwartet einen Klassennamen. Vielleicht sind Sie versucht zu zeigen den classpath auf der Kommandozeile aber sind zu vernachlässigen, Vorwort, dass mit der-cp
oder-classpath
Flagge.Vielleicht sollten Sie zeigen, wie
webtest.lib
definiert ist.InformationsquelleAutor akf
Wenn Sie Zweifel haben, rufen Sie ant -v und beobachten Sie alle Ihre Variablen-Deklarationen, und die ganze Kommandozeile gesendet Java.
Bestimmten Pfad-wie Mengen sind gespannt bewertet, während andere träge bewertet. Ich hatte schon viel Probleme wo ich früher einer der ehemaligen, wenn mein Ant-Skript erstellen soll ein jar, wäre von einer späteren Aufgabe. Dann durch die Zeit, die ich aufgerufen der Aufruf, es hatte schon gestutzt, mein Glas aus dem classpath.
Wenn ich hatte, um eine wilde Vermutung, ich würde Wetten, deine commandline sah etwas wie:
java ... -classpath org.apache.tools.ant.starten.Launcher
statt
java ... -classpath foo.jar;bar.jar org.apache.tools.ant.starten.Launcher
wie Sie erwartet
InformationsquelleAutor Jason
Ich hatte ein ähnliches problem vor kurzem. Die Täter waren 2 tags unter der java-Aufgabe, die nicht Ihre Werte gesetzt, sodass Sie führte in 2 leeren Argumenten und am Ende in 2 Räumen in der Befehlszeile.
Aus irgendeinem Grund Unix nicht behandeln, es richtig. Sowohl Red Hat 5 und Ubuntu der gleiche Fehler. Es war OK auf Windows 7.
Diese Argumente default-dummy-Werten das Problem gelöst.
InformationsquelleAutor Roman Svystun