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 :

[debutant] problème création Jar avec Ant


Sujet :

ANT Java

  1. #1
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut [debutant] problème création Jar avec Ant
    Bonjour, j'espere que le sujet collera car je ne sais pas trop d'où vient le pb ... et j'ai fouiné un peu partout mais bon je n'ai pas trouvé les explications qu'il me fallait.

    Je suis sous Eclipse et j'utilise Ant pour créer un Jar. En fait le jar est bien créé mais à l'exec il me trouve pas la classe.

    J'ai deux classes (interfacesPMV5 et Interface_cost) dans le package net.pcmo.Traitement.

    De plus Eclipse met les .class dans le répertoire class situé à la racine de mon projet. Et mon jar est bien dans le classpath.

    Mon fichier Ant est le suivant (extrait) :
    Code : 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
    23
    24
    25
    <target depends="init" name="compile" description="Compilation">
            <javac debug="true" deprecation="true" destdir="./class" srcdir=".">
               <classpath>
                    <pathelement location="lib/activation.jar"/>
                    <pathelement location="lib/JSQLConnect.jar"/>
                    <pathelement location="lib/classes12.jar"/>
                    <pathelement location="lib/intgserver.jar"/>
                    <pathelement location="lib/mail.jar"/>
                    <pathelement location="lib/log4j-1.2.8.jar"/>
                    <pathelement location="lib/junit.jar"/>
               </classpath>
                <exclude name="net/pcmo/Traitement/Interface_program.java"/>
                <exclude name="net/pcmo/Traitement/Interface_resources.java"/>
                <exclude name="net/pcmo/Traitement/Interface_timesheet.java"/>
            </javac>
        </target>
     
        <target depends="init,compile" name="jar">
            <jar basedir="." compress="true" jarfile="pmInterfaces.jar">
            	<include name="**/InterfacesPMV5.class"/>
            	<include name="**/InterfacesPMV5.java"/>
                <include name="**/Interface_cost.class"/>
                <include name="**/Interface_cost.java"/>
            </jar>
        </target>
    (PS : les ** ça veut dire de parcourir tout les repertoires ??)

    Quand j'ouvre le jar avec winzip j'ai : (voir piece jointe)

    pourquoi il me crée 2 .class pour chaque classe. Est ce la cause du pb ?

    Comment modifier mon script Ant pour corriger ce pb ?

    merci d'avance
    Images attachées Images attachées  
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu as deux classes car eclipse aussi compile les classes. Donc lorsque tu les compiles avec Ant comme tu spécifies un autre répertoire (destdir="./class") il te les compiles une nouvelle fois...

    a++

    PS : les repertoires représentant le nom des packages doivent commencer à la racine du jar. Donc je suppose que le répertoire "class" est de trop...

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    au départ j'avais seulement . dans destdir mais bon c'était exactement pareil. C'est pour ça que j'avais mis ./class ...

    est-ce la cause de l'erreur ?

    Je vais virer ce répertoire class. Mais bon ça sera un peu moins propre ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    bon tres bien ... il prefere sans le répertoire class ...


    merci


    [EDIT] bon en fait j'ai un autre pb ...

    j'ai comme erreur :
    Exception in thread "main" java.lang.NoClassDefFoundError: net/pcmo/Traitement/InterfacesPMV5$1
    Je ne sais pas d'où peut venir cette necessité de cette classe qui effectivement n'est pas dans le jar.

    Je pensais que le $ était utiliser pour les inner class ... en tout cas ici pas de inner class ....

    à moins que ça ne vienne de ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Runtime.getRuntime().addShutdownHook(new Thread(){
    			public void run(){
    				fermeture();
    			}
    		});
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  5. #5
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    désolé je up parce que j'avais taggé résolu, puis enlevé le tag ... du coup je suis bien bloqué depuis tout à l'heure.

    personne n'a d'idée ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par in
    à moins que ça ne vienne de ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Runtime.getRuntime().addShutdownHook(new Thread(){
                public void run(){
                    fermeture();
                }
            });
    Oui oui cela vient bien ce là : c'est une inner-class anonyme... donc tu dois bien avoir un fichier ****$1.class...

    Le mieux est d'inclure tout les *.class lorsque tu génère ton jar, et pas seulement les principaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <include name="**/*.class"/>
    a++

  7. #7
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ok merci.

    c'est vrai que j'aurais pu essayé ...

    merci encore
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

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

Discussions similaires

  1. Problème exportation JAR avec images
    Par oliwan dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/06/2009, 20h08
  2. Problème de jar avec l'API Java d'open Office (com.sun.star)
    Par mazizou dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/05/2008, 16h13
  3. [DEBUTANT] Problème de lecture avec un fscanf
    Par Pingouin dans le forum C
    Réponses: 26
    Dernier message: 28/05/2006, 18h10
  4. Réponses: 2
    Dernier message: 30/09/2005, 14h52

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