Führen jar in der Kommandozeile unter Windows (Classpath)
Ich weiß, das ist eine sehr alte und Allgemeine Frage bereits, aber noch kann ich nicht arbeiten!
Ich entwickle eine Java-Programm auf Windows 7 mit Intellij, füge ich der Datei-Ausgabe von Artefakt zu produzieren, die ein Glas beim kompilieren. Das Programm funktioniert einwandfrei in der IDE, und jetzt will ich es starten ohne die IDE in die Befehlszeile ein.
Die directory-Struktur ist wie folgt:
Projekt
-out
--ProjectName
---project.jar
-lib (under lib there are all the jar libraries used in the project)
-..
(hoffe Ihr könnt das verstehen der Struktur oben dargestellt)
Also ich gehe in das Verzeichnis, in dem die project.jar ist in, und geben Sie den folgenden:
java -cp ..\..\..\lib -jar project.jar
und ich bekomme die Fehlermeldung der Ausnahme NoClassDefFoundError
, aber in der Tat die Klasse enthalten ist, und in einem Glas unter dem lib-Verzeichnis.
Dies sollte sehr einfach sein, aber ich kann nicht damit es funktioniert.
Bitte Hilfe!!! Sehr geschätzt!
-cp
und -jar
- option zur gleichen Zeit. -cp
werden ignoriert.Könntest du Recht haben, aber ich kann nicht beweisen, dass es jetzt, da nun in beiden Fällen kann ich immer noch nicht machen, es funktioniert noch.
InformationsquelleAutor Weixiang Guan | 2013-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stand ich vor einem ähnlichen problem.. Und herausgefunden, eine Lösung..ich bin nicht sicher, ob dies ist bereits gegeben..Wenn dem so ist, ignorieren Sie diese..
Das Szenario basiert auf Maven Paket-Datei(jar) ausgeführt werden zusammen mit dem Klassennamen des JAVA-Lernenden.
Also, für dieses, verwenden Sie den Befehl :java -classpath (jar-Datei) packagename.classname
Für z.B. : java -classpath target\MavenTest-1.0-SNAPSHOT.jar org.erste.edu.App
InformationsquelleAutor Srujan
versuchen
java -cp ..\..\..\lib\*.jar -jar project.jar
wenn Sie nicht wollen, um eine Liste der Gläser individuellInformationsquelleAutor StormeHawke
Fand ich das problem und die Lösung. Wenn ich laufen die project.jar mit dem-jar parameter, der -classpath-parameter wird ignoriert, Umgekehrt. Also ich habe den classpath in der .jar-Datei (durchgeführt durch die classpath-textbox in Intellij), und mehrmals versucht. Schließlich fand ich heraus, dass ich die Angabe des classpath-beginnend mit einem Punkt!!! Was bedeutet, dass der relative Pfad ab dem aktuellen Verzeichnis, und geht weiter. Es ist ziemlich überraschend, da ich glaube, dass ein zwingender Punkt, um das aktuelle Verzeichnis anzugeben, ist nur in Linux (und ich bin mit Windows). Scheint Java handhabt dies anders.
InformationsquelleAutor Weixiang Guan
Zunächst stellen Sie sicher, Sie sind Sie den Befehl ausführen aus dem Verzeichnis in dem dein jar gehalten wird, dann geben Sie diesen Befehl in der Eingabeaufforderung ein:
Zum Beispiel :-
InformationsquelleAutor Tushar