Bonjour!
J'ai une petite question:
j'veux construire un JAR executable à partir d'un projet utilisant plusieurs librairies... peu importe ce que je fais, j'y arrive pas.
Voilà ma structure de projet :
-src
-com.mor.ui
- dossier lib
Fichier ant.properties
J'aimerais pouvoir inclure tout le contenu du dossier lib sans avoir à en spécier tous les jar.
Voilà des extraits de mon fichier build.xml
Tâche de compilation des sources :
Cette tâce ça va mais c'est la tâche dist définie comme suit qui merde:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <target name="Compile" depends="Clean" description="Compile current project"> <echo>Compilation process started...</echo> <javac srcdir="${src.dir}" destdir="${class.dir}"> <classpath location="${lib.dir}"> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> </classpath> </javac> </target>
Ça me donne un build successfull MAIS l'orsque je lance sous DOS la commande : (dans le répertoire "dist") java -jar run.jar
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <target name="dist" depends="Compile"> <mkdir dir="${dist.dir}" /> <jar destfile="${dist.dir}\${executable}" basedir="${class.dir} "> <fileset dir="${class.dir}" id="id" /> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> <manifest> <attribute name="Manifest-Version" value="1.0" /> <attribute name="Created-By" value="L. Morissette" /> <!--attribute name="Class-Path" value="${classpath} "/--> <attribute name="Main-Class" value="${mainClass}" /> </manifest> </jar> </target>
j'obtiens :
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logg
er
at LogTest.<clinit>(Unknown Source)
at MainClass.main(Unknown Source)
Notez que j'utilise log4j de Appache, toute la compilation se fait bien ça fait plusieurs jours que je cherche.....
Des idées sur ce que je fais de travers ?
Ah! J'oublais, dans un autre projet, lorsque je spécifais moi-même les .jar, c'était Nickel
Merci de vos conseils
Désolé si le message est mal formatté, je n'écris pas souvent alors, je ne connais pas toutes les règles de style!
Partager