web-dev-qa-db-fra.com

La fourmi "Java_HOME ne pointe pas vers le JDK" - mais elle le fait

Je ne peux pas exécuter mon Ant build.xml depuis que j'ai mis à jour vers Java 1.7.0_52 (ou environ). Je l'ai exécuté pendant des années via Eclipse localement sur mon ordinateur portable Windows 7 - mais avec cela dernière mise à jour jave jdk quelque chose de différent (?).

BUILD FAILED
C:\workspace\WaterAspectsModel3\build.xml:329: 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 "D:\Morten\Java\jdk1.7.0_52"

Ceci est mon jdk! Java_HOME pointe donc vers un jdk (comme cela ressort également clairement du message d'erreur). J'ai mon Java_HOME avec dossier bin dans mon chemin comme toujours. J'ai configuré Eclipse - configuration d'outils externes - avec un JRE pointant vers le même D:\Morten\Java\jdk1.7.0_52 (via le paramètre "JRE séparé"). Et j'ai essayé un certain nombre d'autres configurations - toutes sans chance.

J'ai lu les tonnes de réponses sur les listes ici et ailleurs et je pense avoir essayé toutes les suggestions. La plupart semblent être des cas où Java_HOME pointe réellement vers un jre et a juste besoin d'être corrigé en jdk ou il y a un ";" dans le chemin ou quelque chose comme ça. Aucun de ces éléments ne semble s'appliquer dans mon cas.

Aucune suggestion?

15
Morten Grum

Le vrai message est que Ant ne peut pas trouver com.Sun.tools.javac.Main.

Ce qui, avec le fait que le dernier JDK "Sun" (Oracle) est 1.7.0_13 (ou peut-être _14, mais certainement pas le "_52" indiqué par votre répertoire d'installation), me fait penser que vous n'utilisez pas de distribution que Ant reconnaît. Vous pouvez le vérifier en exécutant jar tvf $Java_HOME/lib/tools.jar, et à la recherche de cette classe.

Le Ant Manual parle de façons de travailler avec différents compilateurs. Comme je n'ai utilisé que des compilateurs "Sun", je crains de ne pouvoir vous donner de pointeurs.


Modifier: vous pouvez également essayer de définir fork="yes" dans votre fichier de construction. Cela devrait exécuter l'exécutable du compilateur plutôt que d'essayer d'appeler la classe du compilateur.

6
parsifal

J'avais le même message lors de l'exécution d'ANT via Eclipse.

Ce qui a fonctionné pour moi:

  1. Dans Eclipse, accédez au menu: "Fenêtre -> Préférences";
  2. Accédez à "Ant -> Runtime", dans l'arborescence;
  3. Accédez à l'onglet Classpath;
  4. Développez l'élément "Entrées globales";
  5. À l'intérieur des entrées globales, le chemin vers tools.jar avait tort. Il pointait vers une ancienne version de Java;
  6. J'ai supprimé la mauvaise entrée et ajouté la bonne avec le bouton "Ajouter des pots externes". Ça a marché.

enter image description here

33
Vini

La solution "Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext "de ici était très utile et a fonctionné pour moi.

9
Bose

Ajoutez Java_HOME aux variables Eclipse-Preferences-Java-Build Path-Classpath.

0
superuser

Essayez d'ajouter Java_HOME\bin à ton env PATH.

0
user626607