it-swarm.com.de

Java: Wie importiere ich eine JAR-Datei von der Kommandozeile?

Ich versuche, eine Klasse (Hauptmethode) über die Befehlszeile (Windows) mit Java aufzurufen.
Die Klasse importiert andere Klassen (andere Gläser).

Ich erhalte immer "Klasse nicht gefunden Ausnahme" von einer Klasse, die mein Hauptprogramm importiert.

Folgendes habe ich versucht:

  • Fügen Sie eine CLASSPATH-Umgebung hinzu. var mit dem Pfad, in dem sich die referenzierte Bibliothek befindet (funktioniert nicht)

  • Ich habe es mit all diesen verschiedenen Parametern versucht, als ich "Java -jar myjar.jar "von der Kommandozeile:" -classpath lib/ "," -classpath ./lib/ "," -classpath lib "," -cp lib/* "," -cp lib/\* "," -classpath lib/referenced-class.jar "," -classpath ./lib/referenced-class.jar "(lib ist der Ort, an dem sich das referenzierte Jar befindet)

  • Ich habe versucht, das gesamte Glas, auf das verwiesen wird, in mein Glas zu packen, in dem sich meine Hauptklasse befindet ...

  • Und mit all dem habe ich auch versucht, die Klassen in der Manifest-Datei anzugeben mit: Class-path referenced-jar.jar und ich habe es auch versucht Class-path lib/referenced-jar.jar

73
mrmuggles

Sie können es auch ohne das Befehlszeilenargument -jar Ausführen, wenn Sie den Namen der Hauptklasse kennen, die Sie ausführen möchten:

Java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass

Wenn Sie vielleicht Linux verwenden, sollten Sie ":" anstelle von ";" im Klassenpfad.

117
Adam Paynter

Wenn Sie eine JAR-Datei mit Java -jar Ausführen, wird das Argument -classpathwird ignoriert . Sie müssen den Klassenpfad in der Manifestdatei Ihres JAR wie folgt festlegen:

Class-Path: jar1-name jar2-name directory-name/jar3-name

Siehe die Java Tutorials: Hinzufügen von Klassen zum Klassenpfad der JAR-Datei .

Bearbeiten: Ich sehe, dass Sie bereits versucht haben, den Klassenpfad im Manifest festzulegen, aber sind Sie sicher, dass Sie die richtige Syntax verwendet haben? Wenn Sie das ':' Nach 'Class-Path' Überspringen, wie Sie es gezeigt haben, würde es nicht funktionieren.

59
Michael Myers

versuchen

Java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main

Wenn Sie mit Windows arbeiten, sollten Sie ; anstatt :

13
artemb

sie können versuchen, in Eclipse als "Runnable jar" zu exportieren. Ich habe auch Probleme, wenn ich als "jar" exportiere, aber ich habe nie Probleme, wenn ich als "Runnable jar" exportiere.

3
cupakob