web-dev-qa-db-fra.com

Erreur de compilation du package Maven

j'ai créé un projet d'application Web à l'aide de maven dans Eclipse. quand j’exécute la commande mvn package in command invite-le en affichant l’erreur suivante. 

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.310s
[INFO] Finished at: Tue Mar 05 14:32:23 IST 2013
[INFO] Final Memory: 16M/218M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project  Compilation fa
ilure
[ERROR] ***No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?***
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureException

j'ai essayé de changer jdk et jre. mais ne fonctionne pas. toujours montre la même erreur

22
Shiju K Babu

Dans Windows 7 - 64 bits , il existe un problème de permissions empêchant le programme d'installation de décompresser le fichier C:\Program Files\Java\jdk1.6.xx\lib\tools.jar dans votre répertoire local. Ce fichier jar est ce que maven-compiler-plugin version 3.x utilise à la place de la javac habituelle

Solution: Exécutez, en tant qu'administrateur, le programme d'installation du JDK Java! Et assurez-vous que le tools.jar est assis dans le C:\Program Files\Java\jdk1.6.xx\lib\

Si vous utilisez le plug-in d'intégration m2e maven, vous souhaitez voir le fichier visible par Eclipse en procédant comme suit:

  • Allez dans Fenêtre -> Préférences -> Java -> JRE installés
  • Sélectionnez le JDK que vous utilisez (C:\Program Files\Java\jdk1.6.xx).
  • Appuyez sur Modifier pour afficher la liste des fichiers JAR, y compris tools.jar, vous pouvez l’ajouter en tant que Ajouter un fichier JAR externe.

Puis configurez le maven à travers ces étapes:

  • Exécuter-> Exécuter les configurations-> Remplir le nom, le répertoire de base et les objectifs. 
  • Ensuite, dans la même fenêtre, accédez à l’onglet JRE et pointez sur le JDK\jdk1.6.xx \
47
Sym-Sym

Accédez à votre «Configuration d'exécution» et configurez votre JRE sur un JDK.

 Select the right JDK for your Runtime

Ou, comme suggéré par @PawanKumarBaranwal, définissez votre JDK par défaut. Mais attention si vous avez plusieurs JRE configurés.

 Select default JRE

11
kdoteu

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

Double-cliquez sur le JRE, qui est à l'intérieur des JRE installés.

Indiquez le chemin d'accès au JDK (par exemple, C:\Program Files\Java\jdk1.7.0_80\) dans JRE Home et nommez JRE sous le nom JDK . Cliquez sur Terminer, puis sur OK.

Pour moi cela a fonctionné.

3

Ce qui a fonctionné pour moi (Windows 7 32 bits) a été d’ajouter ce qui suit à votre variable d’environnement de chemin:

% Java_HOME%\lib;

3
Aldous Hinton

Dans mon cas, l'erreur "Aucun compilateur n'est fourni dans cet environnement. Peut-être que vous utilisez un JRE plutôt qu'un JDK" était due au fait que le JRE avait été installé dans un emplacement différent de celui par défaut sous le JDK.

Sous Linux 64 bits, le JDK SE 1.6.0_45 d'Oracle 64 bits d'Oracle est installé à /opt/Java. Les JRE 32 et 64 bits ont été installés à /opt/Java/jre32 et /opt/Java/jre64, avec un lien symbolique jre: (c'est-à-dire ln -s jre64 jre), sojre ->./Jre64(meaning/opt/jdk/jrewas a symlink referencing/opt/jdk/jre64).

Une fois que j'ai renommé jre64 en jre (c.-à-d. rm jre ; mv jre64 jre ; ln -s jre jre64), ce problème a disparu. et j'ai été capable de construire en utilisant maven (à l'intérieur de netbeans).

Maven semble regarder le chemin de JRE, en disant "jre64 n'est pas le nom correct pour une installation JRE-inside-of-JDK par défaut, donc supposons qu'un JDK n'existe pas à ../"), ce qui l'empêcherait de résoudre l’emplacement du répertoire JDK lib contenant tools.jar, etc.

Je ne l'ai pas testé, mais la même chose pourrait arriver sous Windows si le JRE n'est pas à l'emplacement par défaut (ou peut-être pas dans le répertoire %Java_HOME%\jre). Si le JDK et le JRE sont installés, le programme d'installation d'Oracle souhaite installer le JRE à %Java_HOME%\jre6 et non pas à %Java_HOME%\jre. C'est peut-être parce que le répertoire \jre est nécessaire au processus de désinstallation de JDK; Si le JRE a été installé sur le JRE du JDK dans le répertoire \jre, au lieu de \jre6, désinstaller le JDK après la désinstallation du JRE échouera sauf si le répertoire\jre est copié, JRE est désinstallé et la copie \jre est restaurée dans \jre.

1
Dietmar May

Il y a plusieurs options à spécifier.

Étapes: Droit sur le projet dans l'explorateur de projet. Choisissez Exécuter-> Exécuter la configuration -> Cliquez sur Construire Maven -> Cliquez sur votre configuration/ou créez une nouvelle configuration. Vous verrez la fenêtre comme instantané donné ci-dessous, cliquez sur l'onglet JRE.

Vous voyez que vous avez 3 options 1) JRE par défaut de l’espace de travail 2) Environnement d’exécution 3) JRE alternatif 1) Le JRE par défaut de l’espace de travail est défini dans le menu 'Fenêtre' en haut -> Préférences -> Java -> JRE installés - Vous pouvez y ajouter votre jdk 2) Environnement d'exécution jdk peut être défini dans pom.xml 

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
        <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
    </configuration>
</plugin>

3) Vous pouvez utiliser un autre JRE pour sélectionner un jdk dans votre répertoire.

1
Saurabh Verma

Allez dans les fenêtres -> Préférences -> Java -> JRE installés

peut-être que jre est déjà ajouté  enter image description here

cliquez sur Ajouter -> Standard VM -> Suivant -> Répertoire

et recherchez le JDK dans mon dossier était C:\Program Files\Java\jdk1.8.0_111

puis cliquez sur terminer.

vous verrez la fenêtre comme ça

 enter image description here

sélectionnez JDK -> Appliquer -> Ok

Et vous avez terminé.

1
GauRang Omar

Aller au preferences>installed JRE>

puis cliquez sur add

sélectionnez C:\program files\Java\

appuyez sur enter

il recherchera d'autres jre que jdk puis choisira ce qui n'est pas sélectionné

1
Suyog Talekar

pour définir le chemin de la manière suivante

conservez le chemin de jdk en premier dans la variable de chemin, de sorte que les autres chemins Java soient ignorés. erreur de compilation sera résolu.

0
Vipin Purohit

Après avoir créé un deuxième espace de travail pour travailler dans une branche de code source distincte, je me suis trouvé dans une situation étrange où je pouvais créer une construction Maven à partir de la ligne de commande dans le nouvel espace de travail, mais pas dans Eclipse. J'ai essayé de définir la configuration du JRE sur le JDK comme décrit par d'autres, mais toujours pas de chance. J'ai finalement dû chercher dans tout le contenu du répertoire .metadata du nouvel espace de travail pour trouver les fichiers incriminés qui ont refusé d'être reconfigurés. Le principal coupable était

.plugins/org.Eclipse.core.runtime/.settings/org.Eclipse.jdt.launching.prefs

Il indiquait toujours le mauvais répertoire malgré mon changement de configuration. J'ai effectué une édition manuelle pour fournir le nom et l'emplacement correct du JDK. J'ai également édité les fichiers sous

.plugins/org.Eclipse.debug.core/.launches

Ils ont également tous fait référence à la JRE au lieu du JDK. Une fois ces modifications effectuées, je pouvais créer des projets dans le deuxième espace de travail à partir d’Eclipse, et pas uniquement à partir de la ligne de commande. 

0
Michael P Stein