Aus meiner Lesungen ausgeführt wird, wenn Sie einen Befehl ausführen, wie folgt:umfassen externe jar wenn java -jar
java -jar foo.jar
Dann wird der Haupt Classpath wird ignoriert, und die Classpath aus der Manifest-Datei entnommen.
Außerdem wird der Klassenpfad, der in der Befehlszeile deklariert ist, ebenfalls ignoriert. So in:
java -classpath /usr/local/jar/foobar.jar -jar foo.jar
/usr/local/jar/foobar.jar wird ignoriert.
Zuletzt habe ich gelesen, dass die Manifest-Datei nur relative Pfade innerhalb der JAR-Datei enthalten kann.
Also, wie enthalten Sie absolute Pfade zu externen Gläsern, die auf dem System vorhanden sind, aber nicht in der JAR-Datei ausgeführt wird?
"Hinweis: Der Klassenpfad verweist auf Klassen oder JAR-Dateien im lokalen Netzwerk, ** keine JAR-Dateien in der JAR-Datei oder über Internetprotokolle zugängliche Klassen. ** Zum Laden von Klassen in JAR-Dateien in einer JAR-Datei In den Klassenpfad müssen Sie benutzerdefinierten Code zum Laden dieser Klassen schreiben.Wenn beispielsweise MyJar.jar eine andere JAR-Datei namens MyUtils.jar enthält, können Sie den Klassenpfad-Header im Manifest von MyJar.jar nicht verwenden, um Klassen in MyUtils zu laden. jar in den Klassenpfad. " Quelle: https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html –