Salut,
C'est possible avec FatJar, mais ce dernier possède deux modes de fonctionnement qui pourrait poser problème :
- Dans un cas il décompresse tous les jar pour les recompresser avec le code de ton application dans un seul et unique Jar, en générant un "gros" fichier MANIFEST commun à tous les jar.
Mais cela peut poser des problèmes de licence puisque on peut considérer que les librairies annexes sont modifiées...
- Dans le second cas (option One-Jar il me semble), les jar des librairies ne sont pas modifié mais directement ajouté dans le jar. Par contre le mécanisme de chargement des classes est modifié par un ClassLoader spécifique.
Cela peut poser problème selon la manière dont tu exécutes ton application (cela pose problème avec Java Web Start il me semble).
Perso je te conseillerais plutôt de laisser les jar externes en dehors de ton jar principal, par exemple dans un répertoire lib. Tu aurais ainsi cette arborescence :
1 2 3 4
| tonJarPrincipale.jar
lib/
lib1.jar
lib2.jar |
Et dans le fichier manifest de ton jar principale, tu références les librairies externes via l'attribut Class-Path du manifest :
Class-Path: lib/lib1.jar lib/lib2.jar
Cf :
Comment créer un jar exécutable ?
a++
Partager