web-dev-qa-db-fra.com

Ant build ne fonctionne pas: impossible de trouver un compilateur javac

J'essaie d'exécuter des exemples Java EE. Ant suggère: Perhaps Java_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jre7

Ma variable Java_HOME est: C:\Program Files\Java\jdk1.7.0_03 lorsque je regarde mes variables Windows 7

Cependant, mon chemin est (remarquez le jdk1.6.0_26): 

%M2_HOME%\bin;%ANT_HOME%\bin;%Java_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;
%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Microsoft Application Virtualization Client;%M2%;
C:\Program Files\QuickTime\QTSystem\;C:\Program Files\TortoiseSVN\bin;
%GLASSFISH%;%GLASSFISH_PARENT%;

PATH=C:\Maven\Apache-maven-2.2.1\bin;C:\Ant\Apache-ant-1.8.2\bin;**C:\Program File
s\Java\jdk1.6.0_26\bin;**C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C
:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Applicatio
n Virtualization Client;C:\Maven\Apache-maven-2.2.1\bin;C:\Program Files\QuickTi
me\QTSystem\;C:\Program Files\TortoiseSVN\bin;C:\glassfish3\glassfish\bin;C:\gla
ssfish3\bin;C:\Sun\jwsdp-2.0\jwsdp-shared\bin

Dois-je faire quelque chose de spécial pour que Windows me permette de sauvegarder mon chemin?

Plus d'informations:

C:\javaeetutorial5\examples\web\hello2>ant
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre7\li
b\tools.jar
Buildfile: C:\javaeetutorial5\examples\web\hello2\build.xml

-pre-init:

init:

default-ear:

-pre-compile:

bpp-actual-compilation:
     [echo] Compiling hello2
     [echo] javaee.classpath.prefix is: C:\glassfish3/lib
     [echo] is.glassfish.v3 is: ${is.glassfish.v3}
    [javac] C:\javaeetutorial5\examples\bp-project\command-line-ant-tasks.xml:93
: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=las
t; set to false for repeatable builds

BUILD FAILED
C:\javaeetutorial5\examples\bp-project\command-line-ant-tasks.xml:93: 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:\Program Files\Java\jre7"

Total time: 0 seconds
20
Eric Francis

Pour Eclipse 

  • Cliquez avec le bouton droit de la souris sur build.xml ---> Chemin de la construction ---> Configurer le chemin de la construction ---> Onglet Sélection des bibliothèques
  • cliquez sur "Ajouter une bibliothèque" ---> double-cliquez sur [bibliothèque système jre] ---> environnements ---> jres installés ---> Ajouter ---> vm standard
  • cliquez sur le répertoire ---> parcourir jusqu'à jdk [C:\Program Files\Java\jdk1.7.0_01]
  • terminer
  • changez la sélection jre en jdk ---> cliquez sur ok
41
Arunsg

Le travail rapide pour le même est

Copiez C:\Program Files\Java\jdk1.7.0_03\lib\tools.jar dans C:\Program Files\Java\jre7\lib \

Cette exception se produit car Java_HOME est défini sur C:\Program Files\Java\jre7 et Ant ne peut pas trouver le fichier tools.jar.

20
minhas23

Dans Windows, accédez aux propriétés de l'ordinateur, aux paramètres système avancés, aux options avancées, aux variables d'environnement.

Ajouter une variable système appelée "Java_HOME" définir son dossier sur votre emplacement JDK dans mon cas "C:\Program Files\Java\jdk1.7.0_51"

Fermer la commande Invite, rouvrez-le et cela devrait fonctionner maintenant.

4
Shai Petel

Lorsque JRE et JDK sont installés sur votre système, assurez-vous que JDK figure en premier dans votre variable PATH.

Je pense que le système analyse la variable PATH de gauche à droite, tout ce qui vient en premier est pris en compte.

Dans mon cas (avec LinuxMint), je recevais la même erreur… .. Quand j'ai ajouté JDK dans une variable PATH avant JRE, cela a résolu mon problème.

3
TANMAY

La même erreur se produisait sous Mac OS X, mais toutes les réponses que je pouvais trouver concernaient le système Windows et, comme les chemins d'accès étaient légèrement différents dans les deux cas, ces solutions ne fonctionnaient pas pour moi. Après avoir passé des heures dessus, j'ai finalement pu le réparer de la manière suivante:

Copiez /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/lib/tools.jar sur /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jome/lib/ext

Cela fonctionnera aussi pour les utilisateurs Windows:

Copiez C:\Program Files\Java\jdk1.8.0_91\lib\tools.jar dans C:\Program Files\Java\jre8\lib\ext

P.S. Veillez également à ce que les versions de jdk et jre que vous avez sélectionnées dans Eclipse soient compatibles.

2
Anna Shekhawat

Lorsque vous cliquez sur le bouton next dans la fenêtre JRE Type après avoir sélectionné Standard VM, vous accédez à la fenêtre suivante nommée JRE Definition où vous pouvez trouver le bouton Directory.

1
BavaMars

Vous avez cette erreur dans la ligne de commande Ant sur le système Windows 7 x64.

Le changement ci-dessous a résolu le problème

JDK installé à partir de serveurs Oracle puis ajouté une nouvelle variable système Java_HOME de valeur C:\Program Files\Java\jdk1.8.0_131

0
control