Ausführen einer JAR mit zusätzlicher Klassenpfadoption: Das Dilemma „-cp“ vs. „-jar“ verstehen
Beim Ausführen einer JAR-Datei benötigen Entwickler möglicherweise Zugriff auf zusätzliche Bibliotheken oder Klassen, die über die im JAR selbst enthaltenen hinausgehen. Um dieses Problem zu lösen, bietet Java zwei Optionen: die Verwendung der Befehlszeilenflags -cp (Klassenpfad) oder -jar.
-cp vs. -jar: Ein Fall gegenseitigen Ausschlusses
Es ist wichtig zu beachten, dass -cp und -jar unterschiedliche Zwecke erfüllen und nicht kombiniert werden können. Das Flag -jar gibt die auszuführende JAR-Datei an, während -cp den Klassenpfad definiert, der zum Auffinden zusätzlicher Klassen und Abhängigkeiten verwendet wird.
Die Option -jar:
If Die erforderlichen Abhängigkeiten sind in der JAR-Datei gekapselt. Wenn sie aus dem Klassenpfad abgerufen werden können, reicht die alleinige Verwendung des Flags -jar aus. Die Java Virtual Machine (JVM) lädt automatisch Klassen sowohl aus der JAR als auch aus dem Klassenpfad, wie in der Manifestdatei der JAR angegeben.
Die Option -cp:
Wenn externe Abhängigkeiten nicht im JAR enthalten sind oder im Klassenpfad nicht gefunden werden können, muss die Option -cp verwendet werden. Es ermöglicht Entwicklern, den Klassenpfad explizit zu definieren, einschließlich der Haupt-JAR und aller erforderlichen zusätzlichen JARs oder Verzeichnisse, die Klassendateien enthalten. Die folgende Syntax veranschaulicht dies:
java -cp 'MyProgram.jar:libs/*' main.Main
In diesem Beispiel gibt MyProgram.jar die Haupt-JAR an, libs/* (unter Verwendung der dir/*-Syntax) fügt alle JARs aus dem libs-Unterverzeichnis zum Klassenpfad hinzu und main.Main gibt den Einstiegspunkt (Hauptklasse) des Programms an.
Alternative: Ändern der JAR-Manifestdatei
Alternativ kann Ants
Durch das Verständnis der Unterschiede und Anwendungsfälle von -cp und -jar können Entwickler JAR-Dateien, die zusätzliche Klassenpfadabhängigkeiten erfordern, effektiv ausführen und so eine nahtlose und fehlerfreie Ausführung gewährleisten. kostenlose Ausführung.
Das obige ist der detaillierte Inhalt vonWie führe ich eine JAR mit zusätzlichen Klassenpfadoptionen aus: -cp vs. -jar erklärt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!