Bonjour,
Je suis sur un problème où je m'arrache les cheveux depuis 2 jours... impossible de trouver la solution pour le moment, après de nombreuses recherches sur Google. Je me décide donc à faire un post !
J'ai une appli que je développe sous Eclipse (3.4) avec le SDK JEE 5.
Je bosse sous Windows.
J'ai un script ANT "build.xml" qui me compile mon projet, notamment une cible rmic pour compiler les stubs RMI. Ca ressemble à cela :
Lorsque j'exécute mon script depuis Eclipse, j'ai systématiquement une erreur sur cette cible rmic :
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 <path id="classpath"> <fileset dir="${projet.bin}"> <include name="*.jar" /> </fileset> <fileset dir="${projet.lib}"> <include name="*.jar" /> </fileset> </path> ... <target name="rmi-compile" depends="init, compile"> <rmic classname="foo.bar.MyService" base="${projet.obj}" > <classpath refid="classpath" /> </rmic> </target>
java.lang.NoClassDefFoundError: sun/tools/java/Constants
Il ne trouve pas cette classe de constantes...
Bon à savoir :
1 - J'arrive à exécuter parfaitement ce même script "build.xml" dans une fenêtre de commandes DOS en dehors d'Eclipse avec un ANT installé en externe (1.6.5 et 1.7.0 = OK)
=> J'en déduis qu'il n'y a pas fondamentalement de pb avec mon script ANT "build.xml"
2 - J'ai un autre projet qui utilise également une cible rmic similaire dans un script ANT. Pour ce projet pas de pbs la compilation RMIC passe (!)
=> J'en déduis qu'il n'y a pas de pb avec mon Eclipse...
D'où vient le pb alors ?? de la JDK ??
Après recherches, j'ai vu que cette classe sun.tools.java.Constants est fournie avec le SDK Java (toutes versions) dans le JAR "tools.jar".
J'ai bien ce JAR dans le SDK de JEE5 sous /jdk/lib.
Dans les préférences ANT d'Eclipse (Window/Preferences/Ant/Runtime), j'ai bien une entrée dans "Global entries" qui est "C:\Program Files\Java\JEE_5_SDK\jdk\lib\tools.jar".
A savoir : mon projet utilise comme JRE le SDK JEE 5.
Au départ, ANT utilisait le JRE 1.5.0 (également installé sur mon poste), et le tools.jar référencé dans "Global Entries" était "C:\Program Files\Java\jdk1.5.0_08\lib\tools.jar"
J'ai donc essayé de TOUT avoir au niveau Eclipse avec JEE 5 :
- J'ai lançé Eclipse avec la VM Java de JEE 5
=> "eclipse.exe clipse -vm "C:\Program Files\Java\JEE_5_SDK\jdk\bin\java""
- J'ai forcé le tools.jar de global entries de ANT à "C:\Program Files\Java\JEE_5_SDK\jdk\lib\tools.jar"
- Le SDK de mon projet est toujours le JEE 5
- J'ai même forçé le tools.jar, pourtant déjà présent dans le global entries ANT, dans le classpath d'exécution de rmic :
- Pour finir, j'ai forçé également ce tools.jar dans la cible de l'application externe ant d'Eclipse (Pièce jointe 41378).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <path id="classpath"> <fileset dir="${fmc.bin}"> <include name="*.jar" /> </fileset> <fileset dir="${fmc.lib}"> <include name="*.jar" /> </fileset> <pathelement path="C:\Program Files\Java\JEE_5_SDK\jdk\lib\tools.jar"/> </path>
Rien ne change... toujours cette erreur...
Je ne sais plus quoi faire !!
Si qqun a une idée, elle est la bienvenue !
Merci d'avance et à plus.
Partager