Question

La raison est longue et ennuyeuse, mais je dois exécuter un script Ant pour compiler le code Java 1.5 à partir d'une application Java 1.4. Je continue à avoir cette erreur, cependant:

BUILD FAILED

build.xml:16: 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 "C:\j2sdk1.4.2_16\jre"

Dans mon code, j'ai:

Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.setProperty("java.home", "C:\Program Files\Java\jdk1.6.0_04");
p.fireBuildStarted();
p.init();
// so on and so forth

mais il l'ignore. J'ai aussi essayé p.setUserProperty (String, String), mais cela ne fait pas l'affaire non plus. Y a-t-il un moyen de le faire sans lancer un processus séparé?

Était-ce utile?

La solution

La tâche javac de votre fichier de construction contient-elle fork = "oui" ? Si ce n'est pas le cas, la propriété java.home n'a pas d'importance. ant tentera d’appeler la méthode javac Main dans le même processus java, lequel de votre erreur est un JRE, pas un JDK.

EDIT Essayez de définir la propriété exécutable de votre tâche javac sur le chemin complet du binaire javac et d'ajouter compiler = " ; extJavac " à la tâche.

Autres conseils

Les barres obliques inverses ne doivent-elles pas être doublées?

p.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.6.0_04");

Avez-vous défini correctement les variables d’environnement JAVA_HOME et ANT_HOME? Si vous utilisez le code, cela devrait fonctionner.

Vérifiez également si votre répertoire% JAVA_HOME% \ bin% ANT_HOME% \ bin doit figurer dans la variable d'environnement 'chemin'.

Votre problème semble être lié au fait que% JAVA_HOME% \ bin n'est pas présent dans l'env. chemin variable si.

Une autre méthode consiste à ajouter "tools.jar" à votre chemin d'accès aux classes. Le compilateur javac est contenu dans ce fichier.

java -cp $ JAVA_HOME / lib / tools.jar ...

L'option javac

est disponible dans le fichier tools.jar. Dans eclipse, même si votre JRE HOME pointe sur un jdk, toutes les bibliothèques système pointent sur JDK_HOME \ jre \ lib. Il n'y a pas tools.jar. Vous pouvez ajouter tools.jar en tant que fichier JAR externe. Cela devrait résoudre votre problème

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top