Ok, das ist die Lösung, die ich gerne gefunden hätte, stattdessen schreibe ich sie hier:
Erstellen Sie zuerst die Verzeichnisstruktur, die dem für die Java-Datei definierten Paket entspricht. Wenn es sich um my.super.application handelt, erstellen Sie das Verzeichnis "my" und darin "super" und darin die Java-Datei "App.java".
dann von der Kommandozeile:
javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java
Beachten Sie, dass die oben genannten Dateien mehrere Bibliotheken enthalten, wenn Sie unter Windows "" verwenden, um mehrere Dateien zu trennen, andernfalls verwenden Sie unter GNU / Linux ":" So erstellen Sie eine JAR-Datei
jar -cvfe App.jar App my/app/
Mit dem obigen Befehl wird die Anwendung mit dem entsprechenden Manifest erstellt, das die App als Hauptklasse angibt.
Das Einfügen der erforderlichen Bibliotheken in die JAR-Datei ist mit Java- oder JAR-Befehlszeilenparametern nicht möglich.
Sie können stattdessen:
- Extrahieren Sie Bibliotheken manuell in den Stammordner der JAR-Datei
- Verwenden Sie eine IDE wie Netbeans und fügen Sie eine Regel in den Post-JAR-Abschnitt von nbproject / build-impl.xml ein, um die Bibliotheken im JAR zu extrahieren. Siehe unten.
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
<jar jarfile="${dist.jar}" update="true">
<zipfileset src="${dist.jar}" includes="**/*.class" />
<zipfileset src="${file.reference.iText-1.0.8.jar}" includes="**/*"/>
<zipfileset src="${file.reference.itextpdf-3.2.1.jar}" includes="**/*"/>
</jar>
</target>
Die file.reference-Namen befinden sich in der Datei project.properties, nachdem Sie die Bibliotheken zur Netbeans-IDE hinzugefügt haben.