Beim Ausführen einer JAR-Datei mit dem Befehl „java -jar MyFile.jar“ ist dies unerlässlich um die Klassenpfadanforderungen zu verstehen. Die Option „-jar“ bedeutet, dass die JAR-Datei die auszuführende Hauptklasse enthält, während „-cp“ zur Angabe eines zusätzlichen Klassenpfads verwendet wird.
Im gegebenen Szenario ist der aufgetretene Fehler wahrscheinlich darauf zurückzuführen die Kombination der Optionen „-jar“ und „-cp“. Wie in der Antwort erläutert, schließen sich diese Optionen gegenseitig aus. Die gleichzeitige Verwendung beider Optionen führt zu einem mehrdeutigen Befehl, den Java nicht interpretieren kann.
Um das Problem zu beheben, hat der Benutzer zwei Möglichkeiten:
Option 1: Verwenden das Manifest-Class-Path-Attribut:
Bei diesem Ansatz enthält das Manifest der JAR-Datei das „Class-Path“-Attribut, das die erforderlichen JARs im Klassenpfad angibt. Dadurch entfällt die Notwendigkeit der Option „-cp“.
Option 2: Geben Sie den vollständigen Klassenpfad mit „-cp“ an:
Für Bei dieser Option würde der Befehl „java -cp 'MyProgram.jar:libs/*' main.Main“ lauten. Hier gibt „-cp“ den vollständigen Klassenpfad an, einschließlich der Haupt-JAR und ihrer Abhängigkeiten, während die explizite Benennung der Klasse „main.Main“ dafür sorgt, dass sie als Einstiegspunkt ausgeführt wird.
Alternativ kann Ant genutzt werden. Für den „Manifest-Ansatz“ wird der „
Andererseits wird beim „Klassenpfad-Ansatz“ der vollständige Klassenpfad mithilfe der Option „-cp“ in Verbindung mit der JAR-Datei und expliziter Benennung angegeben der Hauptklasse. Diese Methode eignet sich, wenn die Zielumgebung das „Class-Path“-Attribut des Manifests nicht erkennt.
Das obige ist der detaillierte Inhalt vonWie führe ich eine JAR-Datei mit zusätzlichen Klassenpfadoptionen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!