[JAR]définir classpath interne
Bonjour à tous,
Je voudrais savoir s'il est possible d'inclure des lib jar dans un jar afin de ne pas se 'trainer' plusieurs fichiers ?
Je m'explique, j'ai développé une application qui nécessite pas mal de librairies. Je voudrais ensuite pouvoir exécuter cette appli de façon classique, c.à.d:
java -cp ? -jar monappli.jar
L'inconnue : '?' le classpath ! Est-ce qu'il est possible de fixer le classpath dans l'appli et donner les chemins d'accès des différentes lib ?
La création du jar ne me pose pas de pb, je le crée avec ant :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<jar destfile="monappli.jar">
<manifest>
<attribute name="Main-Class" value="com.pkg1.pkg2.MainFrame"/>
<attribute name="Version" value="0.0.0.1-beta"/>
<attribute name="Built-By" value="cpr0"/>
</manifest>
<fileset dir="build" includes="**/*.class"/>
<fileset dir="." includes="etc/res/**/*.*"/>
<fileset dir="." includes="etc/dist/lib/*.jar"/>
</jar> |
Structure du jar monappli.jar créé :
/com/pkg1/pkg2/*.class (les classes de l'appli)
/etc/res/img/*.jpg (les icones/images de l'appli)
/etc/dist/lib/*jar (les lib, ex. activation.jar)
/META-INF/MANIFEST.MF (indique entre autre la Main-Class)
Par avance merci,
-David-
Re: [CLASSPATH][JAR]définir classpath interne
Citation:
Envoyé par cpr0
Je voudrais savoir s'il est possible d'inclure des lib jar dans un jar afin de ne pas se 'trainer' plusieurs fichiers ?
Oui, c'est possible (un jar n'est jamais rien qu'un zip). Masi c'est pas conseillé (pour des problèmes de montée de version et tout ce qui va avec).
Citation:
Envoyé par cpr0
java -cp ? -jar monappli.jar
L'inconnue : '?' le classpath ! Est-ce qu'il est possible de fixer le classpath dans l'appli et donner les chemins d'accès des différentes lib ?
Regarde Commons-launcher c'est justement fait pour ça :)
Bonne chance :wink: