Verwenden Sie entweder -cp
flag:
Oder fügen Sie einen Class-Path:
-Header zum Manifest Ihres Jar hinzu (siehe Jigars Antwort)
Hinweis für andere, die mit java -jar <etc>
geantwortet haben: Das Flag -jar
deaktiviert die standardmäßige Umgebungsvariable -cp
und CLASSPATH
, da sie den Klassenpfad aus dem JAR-Manifest abruft. Jede Antwort, die -jar
und -cp
oder $CLASSPATH
kombiniert, funktioniert nicht.
Diese Information ist gut versteckt, aber ich habe endlich eine Referenz gefunden:
-jar
Führen Sie ein in einer JAR-Datei gekapseltes Programm aus. Das erste Argument ist die Name einer JAR-Datei anstelle von a Startup-Klassenname Um dies zu erreichen Option zu arbeiten, das Manifest der Die JAR-Datei muss eine Zeile der Datei enthalten form Hauptklasse: Klassenname. Hier, Klassenname kennzeichnet die Klasse mit diepublic static void main(String[] args)
Methode, die als Ihr dient Ausgangspunkt der Anwendung. Siehe die Jar-Tool-Referenzseite und das Glas Spur des Java Tutorials für Informationen zur Arbeit mit Jar Dateien und Jar-Datei-Manifeste. Wenn du Verwenden Sie diese Option, die JAR-Datei ist die Quelle aller Benutzerklassen und andere Benutzerklassenpfadeinstellungen werden ignoriert.
Aktualisieren
Sie können die erforderliche Bibliothek im Manifest mit Class-Path:
header
Zum Beispiel:
%Vor%Siehe