Ok c'est la solution que j'aurais aimé trouver, à la place je l'écris ici:
Commencez par créer la structure de répertoires correspondant au package défini pour le fichier .java, si c'est my.super.application créez le répertoire "my" et à l'intérieur "super" et à l'intérieur le fichier .java "App.java"
puis à partir de la ligne de commande:
javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java
Notez que ce qui précède inclura plusieurs bibliothèques, si sous Windows utilisez "," pour séparer plusieurs fichiers sinon sous GNU / Linux, utilisez ":" Pour créer un fichier jar
jar -cvfe App.jar App my/app/
ce qui précède créera l'application avec son manifeste correspondant indiquant l'application comme classe principale.
L'inclusion des bibliothèques requises dans le fichier jar n'est pas possible en utilisant les paramètres de ligne de commande java ou jar.
Vous pouvez à la place:
- extraire manuellement les bibliothèques dans le dossier racine du fichier jar
- utilisez un IDE tel que Netbeans et insérez une règle dans la section post-jar de nbproject / build-impl.xml pour extraire les bibliothèques à l'intérieur du jar. Voir ci-dessous.
<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>
les noms file.reference se trouvent dans le fichier project.properties après avoir ajouté les bibliothèques à l'EDI Netbeans.