IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ANT Java Discussion :

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


Sujet :

ANT Java

  1. #1
    Membre habitué
    Homme Profil pro
    SAQ
    Inscrit en
    Novembre 2005
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : SAQ
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2005
    Messages : 167
    Points : 194
    Points
    194
    Par défaut [JAR]ajout d'un ensemble de JARS se trouvant dans un pour créer un JAR executable
    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 :
    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>
    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
    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>
    Ç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

    Désolé si le message est mal formatté, je n'écris pas souvent alors, je ne connais pas toutes les règles de style!
    Si derrière tout homme il y a une femme, devant ce même homme il y a l'ordinateur que cette femme a bousillé
    ---------

    Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing. (Dick Brandon)

  2. #2
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    le lien suivant de donnera la réponse à ta question :
    http://java.sun.com/docs/books/tutor...r/downman.html

  3. #3
    Membre habitué
    Homme Profil pro
    SAQ
    Inscrit en
    Novembre 2005
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : SAQ
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2005
    Messages : 167
    Points : 194
    Points
    194
    Par défaut
    non.. ce n'est pas ce que je cherche... merci quand même

    j'ai vu qu'il fallait rajouter un attribut Class-Path au manifest alors, j'ai fait cette tâche qui "set" la propriété classpath qui est utilisé dans la construction du manifest (ligne en commentaires dans le code précédent) ça ne marche toujours pas . Voici la tâche en question :

    Tâche setClasspath :
    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: setClassPath                      
             - - - - - - - - - - - - - - - - - -->
    	<target name="setClassPath">
    		<echo>Setting classPath</echo>
    		<pathconvert property="classpath" pathsep=" ">
    			<path>
    				<fileset dir="${lib.dir}" includes="*.jar,*.zip" />
    			</path>
    			<map from="${lib.dir}" to="." />
    		</pathconvert>
     
     
    	</target>
    Ça semble définir convenablement ma variable ( dans le code du moins) puisque quand e passe la souris sur le mot ${classpath} ca me donne bien mon classpath. Cependant, lorsque je regard le manifest, cette variable apparait comme indéfinie et me donne par le fait même un noclassdef foud
    des idées sur ce que je devrais faire ?
    Si derrière tout homme il y a une femme, devant ce même homme il y a l'ordinateur que cette femme a bousillé
    ---------

    Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing. (Dick Brandon)

  4. #4
    Membre habitué
    Homme Profil pro
    SAQ
    Inscrit en
    Novembre 2005
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : SAQ
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2005
    Messages : 167
    Points : 194
    Points
    194
    Par défaut
    J'ai trouvé la solution ( je pense)
    il s'agit de remplacer la balise zipfileset par un simple fileset

    ce qui donne au final:

    La tâche dist revisée:

    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
    22
     
    <target name="dist" depends="Compile,setClassPath">
    	<mkdir dir="${dist.dir}" />
     
     
     
    	<jar destfile="${dist.dir}\${executable}" basedir="${class.dir} ">
    		<fileset dir="${class.dir}" />
     
    			<fileset dir="${lib.dir}">
    			 <include name="${libs.filextension}"/>
    			</fileset>
     
     
    			<manifest>
    			 <attribute name="Manifest-Version" value="1.0" />
    			 <attribute name="Created-By" value="L. Morissette" />
    			 <attribute name="Main-Class" value="${mainClass}" />
    			</manifest>
    		</jar>
     
    	</target>

    Je me demande quelle était mon erreur
    c'étais probablement moi qui a vu les différences ente zipfileset et fileset de travers

    Enfin, j'ai résolu mes problèmes, c'est ça qui compte
    Si derrière tout homme il y a une femme, devant ce même homme il y a l'ordinateur que cette femme a bousillé
    ---------

    Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing. (Dick Brandon)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème pour créer un .jar
    Par xokami35x dans le forum Langage
    Réponses: 3
    Dernier message: 14/04/2010, 09h18
  2. Problème pour créer un jar executable
    Par userJDBC dans le forum JDBC
    Réponses: 1
    Dernier message: 08/02/2007, 16h15
  3. [Jar] Ajout de librairies
    Par GLDavid dans le forum Général Java
    Réponses: 18
    Dernier message: 23/01/2006, 15h08
  4. [JAR]ajouter un répertoire au .jar
    Par menuge dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 13/12/2005, 12h41
  5. [plugin] [jar] ajouter un jar dans un plugin
    Par Mobius dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 01/06/2005, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo