Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ANT][JAR]ajout d'un ensemble de JARS se trouvant dans un dossier pour créer un JAR executable

3 réponses
Avatar
Laurent M
Bonjour!
Je ne sais pas si je poste dans le bon groupe mais bon..je me lance :)

Bonjour!
J'ai une petite question:
j'veux construire un JAR executable =E0 partir d'un projet utilisant
plusieurs librairies... peu importe ce que je fais, j'y arrive pas.

Voil=E0 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 =E0
en sp=E9cier tous les jar.

Voil=E0 des extraits de mon fichier build.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
T=E2che de compilation des sources
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
<target name=3D"Compile" depends=3D"Clean" description=3D"Compile current
project">
<echo>Compilation process started...</echo>

<javac srcdir=3D"${src.dir}" destdir=3D"${class.dir}">
<classpath location=3D"${lib.dir}">
<fileset dir=3D"${lib.dir}">
<include name=3D"**/*.jar" />
</fileset>
</classpath>

</javac>


</target>


Cette t=E2ce =E7a va mais c'est la t=E2che dist d=E9finie comme suit qui
merde:
<target name=3D"dist" depends=3D"Compile">
<mkdir dir=3D"${dist.dir}" />



<jar destfile=3D"${dist.dir}\${executable}" basedir=3D". ">
<fileset dir=3D"${class.dir}" id=3D"id" />
<zipfileset dir=3D"${lib.dir}">
<include name=3D"${lib.dir}/*.jar" />
</zipfileset>


<manifest>
<attribute name=3D"Manifest-Version" value=3D"1.0" />
<attribute name=3D"Created-By" value=3D"L. Morissette" />
<!--attribute name=3D"Class-Path" value=3D"${classpath} "/-->
<attribute name=3D"Main-Class" value=3D"${mainClass}" />
</manifest>
</jar>

</target>
=C7a me donne un build successfull MAIS l'orsque je lance sous DOS la
commande : (dans le r=E9pertoire "dist") java -jar run.jar
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
:) =E7a fait plusieurs jours que je cherche.....

Des id=E9es sur ce que je fais de travers ?

Ah! J'oublais, dans un autre projet, lorsque je sp=E9cifais moi-m=EAme
les .jar, c'=E9tait Nickel!=20

Merci de vos conseils

3 réponses

Avatar
TestMan
Bonjour!
Je ne sais pas si je poste dans le bon groupe mais bon..je me lance :)

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
================================= > <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>


Cette tâce ça va mais c'est la tâche dist définie comme suit qui
merde:
<target name="dist" depends="Compile">
<mkdir dir="${dist.dir}" />



<jar destfile="${dist.dir}${executable}" basedir=". ">
<fileset dir="${class.dir}" id="id" />
<zipfileset dir="${lib.dir}">
<include name="${lib.dir}/*.jar" />
</zipfileset>


<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>
Ça me donne un build successfull MAIS l'orsque je lance sous DOS la
commande : (dans le répertoire "dist") java -jar run.jar
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



Bonjour,

Utilises Netbeans, il te construira automatiquement un JAR "qui va bien"
et proprement ... (ou eclipse si tu es plus fan)

Ensuite si tu dois faire une application, pour le lancement propose du
webstart par exemple, c'est plus direct et vraiment plus simple pour
gérer les mise à jours ...
http://cld.blog-city.com/glassfish_java_web_start_and_applications.htm

Non, vraiment les gars arretez les trucs à la main ! Style classpath &
co .. surtout si vous débutez. On a des EDI nickels en Java et en plus
Gratuits et Libre ... alors pourquoi être maso ?

A+
TM

Avatar
pere.noel
TestMan wrote:

Non, vraiment les gars arretez les trucs à la main ! Style classpath &
co .. surtout si vous débutez. On a des EDI nickels en Java et en plus
Gratuits et Libre ... alors pourquoi être maso ?


Quand on pose l'enclume, on se sent + léger ???
--
Père Noël

Avatar
TestMan
TestMan wrote:

Non, vraiment les gars arretez les trucs à la main ! Style classpath &
co .. surtout si vous débutez. On a des EDI nickels en Java et en plus
Gratuits et Libre ... alors pourquoi être maso ?


Quand on pose l'enclume, on se sent + léger ???


« .... l'eau férugineuse, OUI ! » ;-)

A+
TM