Réglage JAVA_HOME lors de l'exécution de la Fourmi à partir de Java
La raison est long et chiant, mais j'ai besoin d'exécuter un script Ant pour compiler Java 1.5 code à partir d'un programme Java 1.4 application. Je reçois cette erreur:
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é de p.setUserProperty(String, String), mais ce n'est pas faire l'affaire, non plus. Est-il un moyen de le faire sans avoir à lancer un processus distinct?
FYI:
java.home
doit être mis à $JAVA_HOME/jre
, de ne pas $JAVA_HOME
lui-même.
OriginalL'auteur Adam Crume | 2009-03-16
Vous devez vous connecter pour publier un commentaire.
Ne le javac tâche dans votre buildfile ont
fork="yes"
? Si non, alors il n'a pas d'importance ce que lajava.home
propriété est définie sur; ant essaie d'appeler le javacMain
méthode dans le même processus java, qui à partir de votre erreur est un JRE, pas un JDK.MODIFIER Essayer de régler le
executable
propriété de votre javac tâche pour le chemin d'accès complet à lajavac
binaire et ajoutercompiler="extJavac"
à la tâche.Je cherchais quelque chose comme le "exécutable" de la propriété et n'a tout simplement pas le voir. C'est ennuyeux que j'ai à le définir pour chaque javac tâche, mais il fonctionne. Merci.
OriginalL'auteur Jason Day
Ne pas les barres obliques inverses être doublé?
OriginalL'auteur Maurice Perry
Avez-vous définir les variables d'environnement JAVA_HOME et ANT_HOME correctement? Si vous êtes réglage via le code, il devrait fonctionner, cependant.
Également vérifier si votre %JAVA_HOME%\bin %ANT_HOME%\bin doit être dans la variable d'environnement "path".
Votre problème semble être à l' %JAVA_HOME%\bin ne pas être présent dans l'envt. chemin de la variable.
OriginalL'auteur Real Red.
Une autre façon de faire ce travail est d'ajouter 'tools.jar" à votre classpath. Le compilateur javac est contenue dans ce bocal.
java -cp $JAVA_HOME/lib/tools.jar ...
OriginalL'auteur ricosrealm
javac option est disponible dans tools.jar. Dans eclipse, même si votre JRE à la MAISON des points à un jdk, toutes les bibliothèques système de point de JDK_HOME\jre\lib. Il n'y a pas de tools.jar. Vous pouvez ajouter tools.jar externe fichier Jar. Cela devrait résoudre votre problème
OriginalL'auteur Mangesh Jadhav