59 votes

Pourquoi ANT me dit-il que JAVA_HOME a tort alors que ce n'est pas le cas?

Je reçois l'erreur:

C: \ dev \ ws \ springapp \ build.xml: 81: impossible de trouver un compilateur javac; com.sun.tools.javac.Main n'est pas sur le chemin de classe. Peut-être que JAVA_HOME ne pointe pas vers le JDK. Il est actuellement défini sur "C: \ Program Files \ Java \ jre6"

Mais j’ai clairement défini mon JAVA_HOME sur C: \ Program Files \ Java \ jdk1.6.0_14

Où ANT obtient-il cette valeur?

77voto

Luigi DAmico Points 311

1) Dans Eclipse, cliquez sur Exécuter->Outils Externes->Outils Externes Configurations
2) Cliquez sur l'onglet JRE
3) Cliquez sur Installé Jre bouton...
4) Cliquez sur le bouton Ajouter (sélectionnez Standard VM, le cas échéant)
5) Cliquez Sur Le Bouton Directory
6) accédez à votre version du JDK (pas de JRE) de votre installation de Java (par exemple: C:\Program Files\Java\jdk1.7.0_04)
7) Cliquez Sur Terminer.
8) Ré-exécuter le script Ant - amusez-vous!

Cela a fonctionné dans un scénario particulier rencontrées.

Espérons que cette aide, qui a déjà l'air!

34voto

Jon Skeet Points 692016

Quand vous dites que vous avez "clairement défini" JAVA_HOME pour "C:\Program Files\Java\jdk1.6.0_14" - est-ce que vous voyez lorsque vous exécutez le "set" de la ligne de commande? Je crois Ant va deviner à une valeur pour JAVA_HOME si on n'est pas ensemble du tout... est-il possible que vous avez mis JAVAHOME au lieu de JAVA_HOME?

Si c'est rien de tout cela, je vous suggère de modifier l' ant.bat fichier de commandes (et ce qu'il appelle - je ne me souviens pas si c'est alambiqué ou pas désinvolte) à imprimer JAVA_HOME au début et à divers autres endroits intéressants.

18voto

Ronnie Points 331

J'ai rencontré le même problème lorsque j'essaie d'exécuter Ant à l'aide de la commande suivante:

java -cp ant.jar:ant-launcher.jar org.apache.tools.ant.Main

La sortie de la commande est:

BUILD FAILED
XXX/build.xml:8: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"

Il semble que l'exécutable java est la cueillette de "/usr/lib/jvm/java-6-openjdk/jre" comme JAVA_HOME, par opposition à "/usr/lib/jvm/java-6-openjdk" où JDK est installé.

J'ai résolu ce problème en définissant fork="yes" mon <javac> de la tâche.

Jetez un oeil à: http://ant.apache.org/manual/Tasks/javac.html

16voto

tom Points 121

Il est également possible que vous ayez inclus / bin dans votre paramètre JAVA_HOME, et que Ant y ajoute / bin, ce qui vous évite de trouver des fichiers exe. Il m'est arrivé:}

8voto

pcomitz Points 51

Assurez-vous de ne pas utiliser le point-virgule final: cela ne fonctionnera pas:

 set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29;
 

Cette volonté:

 set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X