web-dev-qa-db-fra.com

Maven Impossible de localiser le compilateur Javac dans:

Quand j'essaie de générer un fichier war, il montre une erreur comme 

[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar

Quand je fais echo %path% il montre

 C:\Windows\System32;D:\name\name1\Softwares\Maven\Apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%

Quand je fais echo %JDK_HOME%

D:\name\name\core Java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin

Je ne sais pas pourquoi maven fait référence à jre, alors que ma variable environnementale est jdk. Je change également les JRE installés en jdk1.6.

72
BKK

Sa configuration Eclipse uniquement  

Il a 4 étapes TODO.

Étape 1: Faites un clic droit sur les propriétés du projet Eclipse

Étape 2: chemin de construction Java -> Bibliothèques

Étape 3: Sélectionnez Bibliothèque système JRE -> Cliquez sur le bouton Modifier -> Cliquez sur le bouton JRE installés ...

Étape 4: Modifier le JRE en tant que jeu JRE Home = Java_HOME

ScreentShot:

enter image description here

148
Parthasarathy B

Allez dans Fenêtre -> Préférences ... -> Java -> JRE installés

Modifier JRE Home = Java_HOME ou Java_HOME\jre

Par exemple, si vous utilisez jdk1.6.0_04, qui est installé dans C:\Program Files, apportez les modifications suivantes:

C:\Program Files\Java\jdk1.6.0_04\jre ou C:\Program Files\Java\jdk1.6.0_04 au lieu de celui par défaut qui se trouve dans C:\Program Files\Java\jre7

35
Pradeep Vairamani

Avait le même problème, mais dans mon cas, le répertoire Eclipse a souligné le JRE était le JDK. Donc, j'ai cherché ce tools.jar et j'étais là.

J'ai fait 

  • Chemin de construction Java >> Bibliothèques
  • JRE System Lybrary >> Modifier
  • JRE installés >> cliquez sur mon jdk >> modifier
  • Ajouter des fichiers externes >> tools.jar

Et puis bien compilé

4
Hinotori

C'était un problème Eclipse. Quand j'ai essayé de le construire depuis la ligne de commande en utilisant 

mvn package

cela a bien fonctionné.

3
BKK

La variable JDK_HOME doit toujours pointer vers le répertoire de base du jdk, pas vers le répertoire bin:

D:\name\name\core Java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04

Cela défini, fixez votre chemin pour être 

C:\Windows\System32;D:\name\name1\Softwares\Maven\Apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
2
Bruno Penteado

J'ai eu la même erreur, à cause de la version de JUNIT, j'avais 3 3.8.1 et j'ai changé en 4.8.1. 

donc la solution est 

vous devez aller à POM, et assurez-vous que votre dépendance ressemble à ceci 

 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.1</version>
  <scope>test</scope>
</dependency>
2
Ibo

On dirait que JDK_HOME est défini en tant que variable utilisateur et PATH en tant que variable système, ou inversement - echo %PATH% ne doit pas contenir de variables non résolues telles que ...;%JDK_HOME%.

Assurez-vous que le chemin d'accès %JDK_HOME%\bin se trouve sur votre variable PATH, non résolu, même si vous devez l'indiquer explicitement.

2
matt b

Cela dépend de la version Maven. Lorsque vous installerez une version plus récente de Maven, cette erreur ne s'afficherait pas. Vous pouvez également ajouter un autre répertoire avec le fichier tools.jar lib/tools.jar - cela résoudra également ce problème.

0
Bolek

Je suis capable de résoudre en suivant les étapes suivantes:

Faites un clic droit sur le projet sélectionnez Chemin de construction -> Configurer le chemin de construction -> sélectionnez l'onglet Bibliothèques -> puis sélectionnez JRE System Library [version you ai pour moi son JavaSE-1.7] -> cliquez sur le bouton Modifier -> Dans JRE System Fenêtre Bibliothèque, sélectionnez Environnement d'exécution - Dans le menu déroulant, vous pouvez sélectionnez le JDK répertorié pour moi son JavaSE-1.7 -> à côté de ce clic pour Bouton Environnements -> Dans la fenêtre Environnements d'exécution, vous devez encore une fois sélectionnez votre Java SE pour moi son JavaSE-1.7 -> il suffit de le sélectionner, vous aura des options dans l’onglet Compatible JRE, sélectionnez donc le JDK de votre choix d'avoir dans mon cas sa jdk1.7.0_25.


Cliquez sur ok et terminez les fenêtres de repos en prenant les mesures appropriées Ok/Terminer. 

Enfin, Maven Clean et Maven Install.

0
Indrajeet Gour

Bien qu'il existe quelques réponses non-Eclipse ci-dessus pour cette question qui ne mentionne pas Eclipse, elles nécessitent des modifications de la variable de chemin d'accès. Une alternative consiste à utiliser l'option de ligne de commande, Java.home, par exemple:

mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"

Remarquez la fin à la fin - une nécessité surprenante.

0
Colin McRae

J'ai rencontré un problème similaire, et comme personne n'a mis en ligne une approche similaire à la mienne, j'y vais.

Accédez à la configuration d'exécution que vous souhaitez lancer.
Il a choisi l'onglet JRE. Ajustez le "JRE d'exécution" et vous êtes prêt.

0
Vogel612

Si vous suivez toutes les étapes ci-dessus, vous risquez de vous tromper et que notre problème manque simplement à tools.jre. Ajoutez donc simplement tools.jre en procédant comme suit et le problème sera résolu.

Étape 1: Dans Eclipse, accédez à Windows -> Préférences

Étape 2: Java -> JRE installés (double-cliquez dessus)

Étape 3: Cliquez sur le bouton Modifier -> Cliquez sur Ajouter des fichiers JAR externes.

Étape 4: Maintenant, sélectionnez le chemin tools.jar 

appliquez maintenant les modifications et cela fonctionne bien.

Voici une capture d'écran

0
Ravindra

Aucune des réponses actuelles ne m'a aidé ici. Nous obtenions quelque chose comme:

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:
    #.#.#:compile (default-compile) on project Streaming_Test: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] /opt/Java/J7.0/../lib/tools.jar

Cela se produit car l'installation Java a déterminé qu'il s'agissait d'une installation JRE. On s'attend à ce qu'il y ait des éléments JDK ci-dessus le sous-répertoire JRE, d'où le ../lib dans le chemin. Notre tools.jar est dans $Java_HOME/lib/tools.jar pas dans $Java_HOME/../lib/tools.jar.

Malheureusement, nous n'avons pas l'option d'installer un JDK sur notre système d'exploitation (ne le demandez pas), donc ce n'était pas une option. J'ai résolu le problème en ajoutant ce qui suit au maven pom.xml:

  <plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <fork>true</fork>  <!-- not sure if this is also needed -->
      <executable>${Java_HOME}/bin/javac</executable>
      <!--        ^^^^^^^^^^^^^^^^^^^^^^ -->
    </configuration>
  </plugin>

En pointant l'exécutable au bon endroit, nous avons au moins surmonté nos échecs de compilation.

0
Gray

J'ai essayé toutes les suggestions ci-dessus, ce qui n'a pas fonctionné pour moi, mais j'ai trouvé comment corriger l'erreur dans mon cas.

Les étapes suivantes ont permis au projet de compiler avec succès:

Dans l'Explorateur de projets, cliquez avec le bouton droit sur le projet, sélectionnez «propriétés» Dans l'arborescence à droite, sélectionnez Chemin de construction Java. Sélectionnez l'onglet "bibliothèques". Cliquez sur «Ajouter une bibliothèque». Sélectionnez la bibliothèque système JRE. Cliquez sur Suivant . Sélectionnez le bouton radio Autre JRE. Cliquez sur “JRE installé”. Sélectionnez le JRE avec la bonne version. Cliquez sur Appy et fermez. Dans l'écran suivant, cliquez sur terminer . Dans la fenêtre des propriétés, cliquez sur Appliquer et fermez . Dans l'explorateur de projet, cliquez avec le bouton droit sur votre pom.xml et sélectionnez Exécuter en tant que> maven buildDans la zone de texte de l'objectif , écrivez «installer». Cliquez sur Exécuter.

Cela a permis de construire le projet avec succès dans mon cas.

0
FunkyFeudalFox

Dans Eclipse, des actions telles que l'importation de projets Maven ou l'appel de "Update Sources" s'exécutent dans la même machine virtuelle que celle dans laquelle Eclipse est exécuté. Si cette machine virtuelle Java provient d’un environnement JRE ne faisant pas partie de JDK, il n’existera aucun compilateur Java (le fichier tools.jar).

Donc, pour lancer Maven depuis Eclipse, JRE utilisé pour le lancement doit également provenir de JDK. Par défaut, Eclipse enregistre JRE dans lequel il est démarré, mais cela peut être configuré sur la page de préférences "Fenêtre/Préférences…/Java/Installé JRE" comme mentionné ci-dessus par Parthasarathy 

Vous pouvez également spécifier compilerId dans le fichier pom.xml. Ainsi, Maven ne cherchera pas le JDK lors de la compilation du code Java: 

 <plugin>
  <artifactid>maven-compiler-plugin</artifactid>
  <configuration>
    <compilerid>Eclipse</compilerid>
  </configuration>
  <dependencies>
    <dependency>
      <groupid>org.codehaus.plexus</groupid>
      <artifactid>plexus-compiler-Eclipse</artifactid>
      <version>xxxx</version>
    </dependency>
  </dependencies>
</plugin>
0
san1deep2set3hi