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 :

[Ant] Tâche <java> : java.lang.NoClassDefFoundError: <package/class>


Sujet :

ANT Java

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Points : 77
    Points
    77
    Par défaut [Ant] Tâche <java> : java.lang.NoClassDefFoundError: <package/class>
    Salut,

    J'ai un problème avec la tâche <java> de Ant : je n'arrive pas à éxecuter mon programme et la tâche échoue avec ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nom-de-la-cible:
         [java] java.lang.NoClassDefFoundError: cheminpackages/ClassePrincipale
         [java] Exception in thread "main" 
     
    BUILD FAILED
    On dirait que c'est un problème de classpath, mais, après avoir lu de nombreux messages un peu partout sur ce thème, çà ne marche toujours pas (à noter que les autres tâches faisant appel au classpath, <javac>, <junit>, fonctionnent nickel dans mon script Ant).

    Voici le code qui définit le classpath et celui qui utilise la tâche <javac> :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    	<!-- Chemins -->
     
    	<!--
    	// les variables 'java.library.path' et 'java.class.path' sont gérées par Java
    	// le 'basedir' contient quelques DLL utilisées par l'application
    	// le 'bin' contient les .class
    	// le 'lib' contient les .jar
    	-->
     
    	<path id="class.path">
    		<pathelement path="${java.library.path}" />
    		<pathelement path="${java.class.path}" />
    		<pathelement location="${basedir}" />
    		<pathelement location="${bin}" />
    		<pathelement location="${lib}" />
    		<fileset dir="${basedir}">
    			<include name="**/*.dll" />
    		</fileset>
    		<fileset dir="${bin}">
    			<include name="**/*.class" />
    		</fileset>
    	</path>
     
    	<path id="run.path">
    		<fileset dir="${lib}">
    			<include name="ant-junit.jar" />
    			<include name="antlr-2.7.6rc1.jar" />
    			<include name="junit-4.4.jar" />
    			<include name="log4j-1.2.13.jar" />
    		</fileset>
    		<pathelement path="${class.path}" />
    	</path>
     
     
    	<!-- Tache 'java' de la cible chargee de l'execution de l'application -->
     
    	<java dir="${basedir}" classpathref="run.path" classname="packageun.packagedeux.ClasseExecutable" fork="true" failonerror="true" maxmemory="256m">
    		<classpath>
    			<pathelement path="${run.path}"/>
    		</classpath>
    	</java>
    Voilà, j'ai tenté de changer l'attribut 'dir' de '<javac>', trifouillé un peu dans les chemins, mais sans succès.

    Pour Eclipse, j'utilise : Eclipse SDK 3.3.0 I20070625-1500

    Pour Ant, je n'ai pas défini de variable d'environnement ANT_HOME (puisque tout marche bien excepté la tâche <javac>, j'en conclue que Ant est bien configuré). Il est installé ici :

    <chemin-eclipse>\plugins\org.apache.ant_1.7.0.v200706080842

    La source du pb peut donc être multiple.

    Merci d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Points : 77
    Points
    77
    Par défaut
    Bon, problème résolu, en ajoutant cette ligne dans l'élement <classpath> de la tâche <javac>, sans avoir déclaré de variable ANT_HOME toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <classpath>
    	<pathelement location="${bin}" />
    	<pathelement path="${run.path}"/>
    </classpath>
    Je ne comprends pas pourquoi je dois ajouter ce chemin ici, c'est redondant (le chemin est déjà référencé dans '<path id="run.path">' --> '<path id="class.path">' --> '<pathelement location="${bin}" />' , est-ce que cela signifie que les paths définis auparavant sont brisés/fonctionnent mal, et que Ant ne peut les parser/interpréter jusqu'au bout ?).

    Enfin voilà, si vous avez une explication plausible lsur les points suivants, c'est bienvenue :

    - non-nécessité d'ajouter une variable d'environnement ANT_HOME
    - nécessité de dupliquer le '<pathelement location="${bin}" />' dans la tâche '<java>'

    Sinon, sujet résolu

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

Discussions similaires

  1. [JDOM] java.lang.NoClassDefFoundError : NamespaceContext
    Par pierreonxbox dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 11/04/2006, 09h43
  2. [DisplayTag] java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException
    Par MAJIK_ENIS dans le forum Taglibs
    Réponses: 18
    Dernier message: 06/04/2006, 10h18
  3. [Plugin][Hibernate Tools] java.lang.NoClassDefFoundError
    Par notrustinyou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/11/2005, 17h17
  4. [ eclipse3 ] [ Deb. ] java.lang.NoClassDefFoundError:
    Par Marc_3 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/10/2005, 12h26
  5. [Struts] java.lang.NoClassDefFoundError
    Par Zephoria dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/02/2005, 10h51

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