Heim >Java >javaLernprogramm >Wie führe ich eine JAR-Datei mit externen Abhängigkeiten aus?

Wie führe ich eine JAR-Datei mit externen Abhängigkeiten aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 18:41:101011Durchsuche

How to Execute a JAR File with External Dependencies?

Ausführen einer JAR-Datei mit einem externen Klassenpfad

Problem

Kompilieren einer JAR-Datei mit einer angegebenen Hauptklasse und abhängigen Bibliotheken (gespeichert in „lib“-Verzeichnis), schlägt der Versuch, die JAR-Datei mit dem benutzerdefinierten Klassenpfad auszuführen, fehl. Zu den aufgetretenen Fehlern gehören „Hauptklasse konnte nicht gefunden oder geladen werden“ oder „NoClassDefFoundError“.

Lösung

Der Java-Befehl -jar ignoriert den Parameter -cp, wenn eine JAR-Datei angegeben wird. Dies bedeutet, dass alle Versuche, mit -cp einen benutzerdefinierten Klassenpfad anzugeben, wirkungslos sind.

Um die JAR-Datei mit dem externen Klassenpfad auszuführen, stehen zwei Optionen zur Verfügung:

  1. Alle Jar-Dateien in das Manifest einbeziehen:

    • Innerhalb der MANIFEST.MF-Datei im JAR, geben Sie den Klassenpfad an, indem Sie die JAR-Dateien aus dem Verzeichnis „lib“ unter Verwendung relativer Pfade einschließen.
  2. Klassenpfad in der Befehlszeile angeben:

    • Geben Sie in der Befehlszeile die Option -cp mit einer durch Doppelpunkte getrennten Liste aller erforderlichen JAR-Dateien an, einschließlich Ihre JAR-Datei und das Verzeichnis „lib“:

      java -cp MyJar.jar:lib/* com.somepackage.subpackage.Main

Hinweis: Es ist nicht möglich, zusätzliche JAR-Dateien in das JAR aufzunehmen Datei selbst, da Sie die .class-Dateien extrahieren und direkt in Ihrem JAR ablegen müssten.

Das obige ist der detaillierte Inhalt vonWie führe ich eine JAR-Datei mit externen Abhängigkeiten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn