it-swarm.com.de

Klasse in Jar-Datei ausführen

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.

149
jim

Verwenden Sie Java -cp myjar.jar com.mypackage.myClass.

  1. Wenn die Klasse nicht in einem Paket enthalten ist, dann einfach Java -cp myjar.jar myClass

  2. Wenn Sie sich nicht in dem Verzeichnis befinden, in dem sich myJar.jar befindet, können Sie Folgendes tun:

    1. Auf Unix- oder Linux-Plattformen:

      Java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. Unter Windows:

      Java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass

224
Bitmap

Sie wollen:

Java -cp myJar.jar myClass

Die Dokumentation gibt folgendes Beispiel:

C:> Java -classpath C:\Java\MyClasses\myclasses.jar utility.myapp.Cool
21

Es gibt zwei Arten von JAR-Dateien in Java:

  1. 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.

  2. 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.

15
Gaurav Singh

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:

  1. 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.

  2. 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.

5
user177800

Dies ist der richtige Weg, um einen .jar auszuführen, und was auch immer eine Klasse in diesem .jarmain() haben sollte, und die folgenden Parameter sind dabei:

Java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
0
ubersucks