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 :

Execution du code java via ANT


Sujet :

ANT Java

  1. #1
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut Execution du code java via ANT
    Bonjour, j'ai cette erreur lorsque je tente d'executer mon code java via ANT sous éclipse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    runJava:
         [java] java.lang.NoClassDefFoundError: src/Test/TestExtraction
         [java] Exception in thread "main" 
         [java] Java Result: 1
    BUILD SUCCESSFUL
    Total time: 2 seconds
    Je suis allé sur le sujet qui traîte de ce genre d'erreur mais sans succès.
    Voila mon code ANT:

    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
     
    <target name="compile" description="compile the sources">
    		<javac srcdir="src/Parseur" destdir="src"/>
    		<javac srcdir="src/Test" destdir="src"/>
    	</target>
     
    	<target name="runJava" depends="compile"> 
    		<java dir="src/Test" classname="src.Test.TestExtraction" fork="true">
    			<classpath>
    				<fileset dir="lib">
    			     		<include name="**/*.jar"/>
    				</fileset>
    			</classpath>
    			</java>
    	</target>
    J'utilise des jar externes se trouvant dans le repertoire "lib" de la racine du projet.
    Pouvez vous me dire ce que j'ai oublié????
    Merci d'avance.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    src.Test est un package ou un répertoire de sources ?
    Si c'est un répertoire de sources il faut que tu mettes plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classname="TestExtraction"
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  3. #3
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    src.Test est un package dans lequel j'ai le code java de la classe TestExtraction que je veux executer, et c'est également dans ce repertoire que j'ai mis le .class généré par la tache javac. pour info le .class existe bien dans ce package apres la tacje Javac.
    Alors autre solution?
    Merci dejà pour cette réponse aussi rapide.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    C'est bizarre ce que tu me dis.

    Quelle est la déclaration de package dans la classe TestExtraction ?

    Y a-t'il une ligne package src.Test; ou rien ?
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  5. #5
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    voila la ligne d'importation de la classe appelée dans TestExtraction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import Parseur.TraiteurGeneral;
    qu'est ce qui est bizarre??
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Je t'ai demandé si tu avais une ligne "package" dans TestExtraction.
    Manifestement non.
    Donc src.Test n'est pas un package mais un répertoire de sources.

    Fait donc ce que je t'ai dis dans ma première réponse.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  7. #7
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Voila la seule ligne package que j'ai dans "TestExtraction"

    Ca marche toujours pas, je ne comprends pas pourquoi en mettant simplement "TestExtraction" ca aurait pu marcher, dans la mesure où la classe à executer n'est pas à la racine du projet, elle se trouve bien dans le package "src.Test", je l'y ai redirigé dans la tache Java, le pb vient d'ailleurs je pense.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  8. #8
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    src.Test n'est pas la racine de ton projet.
    La racine c'est le répertoire src
    Ton package c'est Test.
    Toi tu mélanges les 2 notions ce qui fait que ça ne peut pas fonctionner.

    Voici ton script ANT modifié, ça devrait aller avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	<target name="compile" description="compile the sources">
    		<javac srcdir="src/" destdir="src"/>
    	</target>
     
    	<target name="runJava" depends="compile"> 
    		<java dir="src/" classname="Test.TestExtraction" fork="true">
    			<classpath>
    				<fileset dir="lib">
    			     		<include name="**/*.jar"/>
    				</fileset>
    			</classpath>
    			</java>
    	</target>
    Au passage je te conseille de compiler dans un répertoire bin et pas directement dans les sources.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  9. #9
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Merci bcp la réponse,j'étais en conférence c'est pourquoi je t'ai pas répondu depuis. Mais pour ce qui est de confusion de notions je crois pas l'avoir fait, je sais bien distinguer racine et package, c'est plutot le fonctionnement de ANT qui est un peu nouveau pour moi, je l'utilisais pas avant.
    Je fais d'autres tests et je redis si toutes les classes sont bien appelées.
    Merci encore pour ton intervention cher modo, c'est très cool de ta part.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  10. #10
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Mais pour ce qui est de confusion de notions je crois pas l'avoir fait, je sais bien distinguer racine et package
    Excuse moi de te contredire mais dans tout ce que tu m'as dis ce n'est pas le cas.

    Tu dis que src.Test est un package, alors que src est un répertoire et que c'est Test le package.
    Tu mets classname="src.Test.TestExtraction", si la notion de classe et de package était claire, tu devrais tilter sur ça. La classe c'est Test.TestExtraction. On n'a jamais vu de nom de répertoire dans un nom de classe (sauf si celui-ci est un package).

    J'espère t'aider à en prendre conscience, c'est important de bien comprendre pour éviter ce genre de problème à l'avenir.
    Au-delà de ça, un script ANT ce n'est qu'automatiser une opération manuelle. Si tu sais faire manuellement, alors il suffit de mettre la même chose dans le script ANT.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  11. #11
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Ok merci pour la nuance et pour ton aide.
    Maintenant ca marche.
    cdt
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  12. #12
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut Petit constat et question
    Je viens de me rendre compte qu'en fait en plus des librairies externes nécessaires à mon appli je dois aussi mettre le jar propre de l'appli (généré par ecplise) dans le même repertoire lib du projet pour que ca marche,donc ton code modifié ne marche pas si je n'ajoute pas le jar propre à l'appli, sinon il m'affiche toujours classe non trouvé. peux tu m'expliquer pourquoi?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  13. #13
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Ton classpath de runJava est faux. Il ne met pas ce que tu as compilé dedans, à savoir le répertoire src.

    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <classpath>
    	<pathelement path="src/"/>
    	<fileset dir="lib">
    		<include name="**/*.jar"/>
    	</fileset>
    </classpath>
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  14. #14
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Propre tout marche bien, juste une dernière question y'a til une possibilité de passer des paramètres à la tache Java venant d'un fichier de Propriétés qu'on aura préalablement chargé en debut du build? par exemple j'ai 2 arguments que je passais à mon main Java que je veux mettre dans le build désormais.
    As tu une idée stp?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  15. #15
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Oui c'est possible mais comme je ne suis pas partisan du "tout cuit sur un plateau" (que je trouve peu formateur), je t'enjoins à chercher dans la documentation ANT.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  16. #16
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Merci de ton aide, mais j'ai déjà trouvé une autre solution pour pallier, j'ai fait un fichier de property que Java lit bien dans le main, du coup j'ai plus besoin de modifier mon ANT ca marche bien.
    Je vais quand même lire la doc envoyée.
    Merci et bonne soirée.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  17. #17
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    De rien
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

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

Discussions similaires

  1. executer un code java a partir de l'invité de commande de windows
    Par lchouchou dans le forum Général Java
    Réponses: 3
    Dernier message: 16/05/2013, 15h41
  2. executer du code Java Script dans un fichier XML
    Par said_ini dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/04/2009, 01h38
  3. Réponses: 3
    Dernier message: 19/02/2009, 11h31
  4. Probleme d'execution du code java
    Par betacrack dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2006, 11h40
  5. Compiler du code Java via Java
    Par sozie9372 dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2006, 10h14

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