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

avec Java Discussion :

Compilation javac avec .jar


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Points : 89
    Points
    89
    Par défaut Compilation javac avec .jar
    Bonjour,
    je n'arrive pas à compiler correctement mon programme en ligne de commande.
    Le programme compile correctement sous Eclipse.
    Il est constitué de plusieurs classes situé au même niveau avec un Main général.
    Certaine classe de mon programme utilise le package jdom.jar qui se situe au meme niveau que tous les autres classes.

    Je cherche simplement à compiler et exécuter mon programme en ligne de commande.

    Si j'écrit: javac Main.java
    Sa compile mais à l'exécution sa plante des qu'il y a un "import org.jdom.*;"
    Si j'écrit: javac -cp jdom.jar Main.java
    Sa plante à la compilation comme si sa ne retrouvais plus mes classe de bases. Exemple;Main.java:42: cannot find symbol, symbol : class DownloadXML

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Essai d'ajouter l'option "-sourcepath" pour préciser où sont tes fichier sources (fichier *.java).

    Romain.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Points : 89
    Points
    89
    Par défaut
    Bonjour,
    je ne vois pas comment utiliser sourcepath, je rappel que toutes les classes dont le Main sont dans le même répertoire ainsi que le jdom.jar.

    J'écrit: javac -classpath jdom.jar -sourcepath ./*.java Main.java
    Mais j'ai le message d'erreur suivant:Main.java:13: duplicate class: Main...


    Edit:
    De plus si j'écrit: javac -classpath jdom.jar -sourcepath ./DownloadXML.java Main.java
    J'ai quand même le message d'erreur: Main.java:42: cannot find symbol symbol : class DownloadXML

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah, en utilisant l'option -classpath tu lui redéfinis où aller chercher les classes, or, le répertoire courant n'est pas dans le classpath que tu lui indique, donc il n'arrive pas à trouver tes classes java. (oui, je sais, c'est con, mais c'est comme ça).

    Donc la ligne à utiliser est la suivante sous windows

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath jdom.jar;. Main.java
    Et pour les unix like:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath jdom.jar:. Main.java
    Le . indiquant le répertoire courant.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Points : 89
    Points
    89
    Par défaut
    Bonjour,
    je suis sur Mac:
    J'écrit: javac -classpath jdom.jar:. Main.java
    Pas d'erreur mais si j'exécute ainsi : java Main

    J'ai ce message d'erreur:

    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
     
    java Main
     ---  Start  --- 
    Exception in thread "main" java.lang.NoClassDefFoundError: org/jdom2/input/SAXBuilder
    	at AddGameXML.<init>(AddGameXML.java:27)
    	at XMLWork.<init>(XMLWork.java:37)
    	at Main.main(Main.java:44)
    Caused by: java.lang.ClassNotFoundException: org.jdom2.input.SAXBuilder
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    	... 3 more
    Je rappel que j'execute le code habituellement dans eclipse dans lequel sa marche et que j'ai ajouté le package jdom dans eclipse.
    Peut être que mon intégration de "jdom" dans mes classes sont mal réalisé par rapport à la compilation manuelle.

    Pour ajouter les classes jdom j'écrit: import org.jdom2.*;

    Merci

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Le fichier jdom.jar est il dans le répertoire où tu lances la commande?
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Points : 89
    Points
    89
    Par défaut
    oui mon dossier se présente ainssi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ls
    AddGameXML.class	Main.class		XMLWork.class
    AddGameXML.java		Main.java		XMLWork.java
    DownloadXML.class	SndndLd.class		jdom.jar
    DownloadXML.java	SndndLd.java		mochiXML.xml
    ExtractXML2BigXml.class	String2XML.class	tmp.xml
    ExtractXML2BigXml.java	String2XML.java
    Une bref partie du code ju'qua la ligne ou sa plante:
    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
     
     
    import java.io.*;
    import java.util.*;
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.Namespace;
    import org.jdom2.input.SAXBuilder;
     
    public class AddGameXML{
    	/* ------------------ */
    	/* ------------------ */
    	... mes variables ...
    	/* ------------------ */
    	public AddGameXML(String nameFolder) throws FileNotFoundException, IOException{
    		/* -------- */
    		SAXBuilder sxb = new SAXBuilder(); //ligne 27
    ...suite du code...

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu utilises bien la version 2 de jdom?

    Ton jar ne correspondrait-il pas à la version 1?

    Car normalement le jar de jdom contient la version dans son nom.

    Par exemple: jdom-2.0.5.jar
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Points : 89
    Points
    89
    Par défaut
    Bonjour,
    oui bonne question, j'ai écrit le programme y'a un moment mais c'est le bon jar. Je ne sais plus pourquoi j'ai choisit de le renommer ainsi.

    Par mesure de sécurité j'ai re-télécharger jdom2, et re-compilé avec le nouveau nom mais j'ai toujours le même message d'erreur.



    J'ai aussi essayé de compiler sous ubuntu et j'ai le même message d'erreur à l'execution.

    Ce que je trouve bizarre c'est que si j'écrit : javac -classpath jdomDoNotReal.jar:. Main.java
    Sa compile quand même sans erreur.

  10. #10
    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,

    Citation Envoyé par carton99 Voir le message
    J'écrit: javac -classpath jdom.jar:. Main.java
    Pas d'erreur mais si j'exécute ainsi : java Main
    C'est normal le classpath doit également être défini à l'exécution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath jdom.jar:. Main

    a++

  11. #11
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Con de mime d'aveugle de Sinok.

    Va falloir aller dormir...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Points : 89
    Points
    89
    Par défaut
    Bonjour,
    ok cool sa marche.

    Merci

Discussions similaires

  1. Compilation avec jar ovh
    Par benwit dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 29/01/2010, 23h04
  2. Compilation d'un .jar avec Eclipse
    Par 0coco0 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/03/2009, 08h18
  3. Compilation "javac" avec une librairie .jar
    Par visiwi dans le forum Langage
    Réponses: 1
    Dernier message: 12/07/2008, 18h12
  4. Comment compiler avec javac des jar sans utiliser -cp
    Par Battosaiii dans le forum Langage
    Réponses: 7
    Dernier message: 06/10/2006, 17h03
  5. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21

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