Wenn Sie eine JAR-Datei mit dem Namen myJar.jar
in/myfolder haben und die Klasse myClass
daraus verwenden möchten, wie gehen Sie dann mit der Befehlszeile vor?
Ich dachte, es wäre in das Verzeichnis zu gehen und Java -cp myJar.jar.myClass
zu sagen, aber das funktioniert nicht. Jede Hilfe wäre dankbar.
Verwenden Sie Java -cp myjar.jar com.mypackage.myClass
.
Wenn die Klasse nicht in einem Paket enthalten ist, dann einfach Java -cp myjar.jar myClass
.
Wenn Sie sich nicht in dem Verzeichnis befinden, in dem sich myJar.jar
befindet, können Sie Folgendes tun:
Auf Unix- oder Linux-Plattformen:
Java -cp /location_of_jar/myjar.jar com.mypackage.myClass
Unter Windows:
Java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass
Sie wollen:
Java -cp myJar.jar myClass
Die Dokumentation gibt folgendes Beispiel:
C:> Java -classpath C:\Java\MyClasses\myclasses.jar utility.myapp.Cool
Es gibt zwei Arten von JAR-Dateien in Java:
Runable/Executable-JAR-Datei, die die Manifestdatei ..__ enthält. Zum Ausführen einer Runable-Jar können Sie Java -jar fileName.jar
oder Java -jar -classpath abc.jar fileName.jar
verwenden.
Einfache JAR-Datei, die keine Manifestdatei enthält. Sie müssen Ihre Hauptklasse einfach ausführen, indem Sie den Pfad Java -cp ./fileName.jar MainClass
angeben.
Angenommen, Sie befinden sich in dem Verzeichnis, in dem sich die myJar.jar
-Datei befindet und dass myClass
eine public static void main()
-Methode enthält:
Sie verwenden die folgende Befehlszeile:
Java -cp ./myJar.jar myClass
Woher:
myJar.jar
befindet sich im aktuellen Pfad. Beachten Sie, dass sich .
auf den meisten Systemen nicht im aktuellen Pfad befindet. Ein vollqualifizierter Pfad wird auch hier bevorzugt.
myClass
ist ein vollständig qualifizierter Paketpfad für die Klasse. Im Beispiel wird davon ausgegangen, dass myClass
im Standardpaket enthalten ist. Dies ist eine schlechte Praxis. Wenn es sich in einem verschachtelten Paket befindet, wäre es com.mycompany.mycode.myClass
.
Dies ist der richtige Weg, um einen .jar
auszuführen, und was auch immer eine Klasse in diesem .jar
main()
haben sollte, und die folgenden Parameter sind dabei:
Java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar