web-dev-qa-db-fra.com

Aucun compilateur n'est fourni dans cet environnement. Peut-être que vous utilisez un JRE plutôt qu'un JDK?

Je suis en train de compiler un projet dans Eclipse en utilisant m2Eclipse. J'ai défini le chemin JDK dans Eclipse comme ceci:

Windows-->preferences-->installed jres--> jdk1.7.xx  path

Mais cela montre une erreur

[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: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-   plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
564
Sai prateek
  1. Sur votre IDE Eclipse, allez dans Fenêtre > Préférences > Java > JRE installés > et vérifiez votre JRE installés . Vous devriez y avoir une entrée avec un JDK.
  2. Sélectionnez la variable d'exécution comme indiqué ci-dessous. Cliquez sur OK
  3. Puis Cliquez avec le bouton droit de la souris sur votre projet -> Maven -> Mise à jour du projet

De plus, vous devrez peut-être changer Maven JRE (voir réponse @ jlars62) comme suit. Allez à Exécuter -> Exécuter les configurations, en sélectionnant la construction Maven que j’exécutais (dans le panneau de gauche). Ensuite, j'ai cliqué sur l'onglet JRE et sélectionné l'option JRE par défaut de Workspace.

enter image description here

883
jaipster

Pour moi, c’est exactement ce que se plaint le maven d’Eclipse

enter image description here

Alors, j'appuie sur le bouton Edit et je change de chemin vers le dossier JDK, puis je nettoie le projet et tout commence à fonctionner

130
Thai Tran

Pour moi, rien n'a fonctionné jusqu'à ce que je modifie mon fichier 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>
    </plugins>
</build>

Autres notes

Je pouvais voir que m2e était exécuté dans une JRE, pas dans le JDK. Rien de ce que j'ai fait n'a changé cela, y compris l'ajout de cela au fichier Eclipse.ini:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

En fin de compte, je n'ai jamais eu à exécuter M2E dans un JDK, mais configurer le compilateur Java explicitement (comme ci-dessus) a tout gâché.

114
ksnortum
  1. Définissez la variable d’environnement Java_HOME sur le dossier racine du JDK - nécessaire si vous exécutez la ligne de commande ou maven (mvn).
    • (Recherche sur Google pour Java_HOME pour plus d'informations)
  2. Dans les propriétés du projet de la section Java Le compilateur sélectionne le JDK requis - si vous l'exécutez directement à partir d'Eclipse
100
msangel

Je recevais cette erreur lorsque j'essayais de créer un maven à partir d’Eclipse.

Pour moi, la réponse allait à Run -> Run Configurations, en sélectionnant le Maven Build je courais (dans le panneau de gauche). Ensuite, j'ai cliqué sur l'onglet JRE et sélectionné l'option Workspace default JRE.

36
jlars62

Dans mon cas, cela a été résolu en procédant comme suit:

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

Select the right JDK for your Runtime

Select default JRE

J'ai copié la réponse au cas où elle serait supprimée pour une raison quelconque, mais la source est ici

36
Eduardo Dennis

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 chemin de cas était C:\Program Files\Java\jdk1.8.0_111

puis cliquez sur terminer.

vous verrez la fenêtre comme ceci enter image description here

sélectionnez JDK -> Appliquer -> Ok

Et vous avez terminé.

29
GauRang Omar

J'ai essayé tout ce qui précède, cependant, je reçois toujours le même message d'erreur.

Dans mon cas, un JRE réel a été utilisé de manière incorrecte en tant que bibliothèque système JRE dans le chemin de génération spécifique au projet, ce qui annulait évidemment tous les autres paramètres décrits ici.

Si tel est le cas dans votre cas, essayez ce qui suit:

  1. Ouvrez les bibliothèques spécifiques au projet du chemin de construction Java: cliquez avec le bouton droit de la souris sur "Projet> Chemin de construction> Configurer le chemin de construction ..." et sélectionnez l'onglet "Bibliothèques".
  2. Sélectionnez l'entrée "JRE System Library" et cliquez sur "Supprimer".
  3. Appuyez sur "Ajouter une bibliothèque ...".
  4. Un assistant apparaît. Sélectionnez "Bibliothèque système JRE" et cliquez sur "Suivant>".
  5. Maintenant, sélectionnez le bon JDK (dans mon cas, "JRE par défaut de Workspace", que j'ai configuré à l'aide d'un JDK).
  6. Fermez l'assistant en cliquant sur "Terminer".
  7. Fermez la boîte de dialogue "Propriétés" en cliquant sur "OK".
13
Sir Hackalot

J'ai eu le même problème et je viens d'ajouter Java_HOME à variables d'environnement .

env var

  • Si vous utilisez Eclipse, reportez-vous simplement https://stackoverflow.com/a/21279068/6097074
  • Si vous utilisez intellij, juste après avoir ajouté Java_HOME, ouvrez la commande Invite à partir du répertoire du projet et exécutez mvn clean install (n'utilisez pas le terminal intellij).
12
ankit

Une alternative si la réponse de jaipster ne fonctionne pas est d'aller à:
Fenêtre> Préférences> Java> JRE installés

Puis éditer le jre pour qu’il pointe vers le jdk et non le jre (jre home classé dans l’éditeur de paquets jre)

Cela a fonctionné pour moi.

9
brunoais

Si vous exécutez la commande Maven à partir de cmd, assurez-vous de définir le chemin jdk avant d'exécuter la commande. Dans mon cas, j'ai créé un fichier .bat contenant les éléments suivants:

set Java_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"
8
Mahder

J'ai rencontré le même problème en essayant de créer un fichier jar de mon application de projet à l'aide de mvn clean install, bien que l'application fonctionnait correctement lors de l'exécution d'Eclipse.

Le problème était, en effet, trop naïf, que je n’ai pas défini la variable d’environnement Java_HOME. Tout ce que je devais faire était de définir la variable d’environnement Java_HOME sur le répertoire JDK. Assurez-vous que ce n’est pas avant "\ bin" et sans point-virgule ";".

enter image description here

Comment j'ai compris c'est comme:

L'application fonctionnait correctement sous Eclipse, car la bibliothèque système JRE faisait référence à JRE dans le dossier JDK au lieu du dossier JRE externe sans JDK. [Comme très bien expliqué dans d'autres réponses]

Cette configuration ne s'applique pas à la commande maven exécutée à l'invite de commande. La variable Java_HOME recherchera toujours l'accès à la bibliothèque du système JRE. Si elle n'est pas trouvée, elle fait référence au dossier JRE externe sans JDK.

7
Dhaval Simaria

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 config de construction/ou créez une nouvelle config. Vous verrez la fenêtre comme instantané donné ci-dessous, cliquez sur l'onglet JRE.

Vous voyez que vous avez 3 options 1) Espace de travail JRE par défaut 2) Environnement d'exécution 3) Autre JRE enter image description here 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 - Ici, vous pouvez ajouter votre jdk enter image description here 2) Environnement d'exécution jdk peut être défini dans pom.xml comme indiqué par @ksnortum

<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>
</plugins>

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

6
manntsheth

Pour moi, le JRE était dans la variable d'environnement PATH avant le chemin JDK

  1. C:\ProgramData\Oracle\Java\javapath
  2. C:\env\jdk1.8.0_151\bin

Donc j'ai enlevé 1. Probablement les échanger réglerait ça aussi.

4
Florin D

Ma réponse concerne l’Eclipse sous Windows.

Je suis allé dans Préférences -> Java -> JRE installés Je n'ai pas vu le JDK ici. J'ai seulement vu le JRE ici. J'ai donc ajouté le JDK puis décoché le JRE. Puis vérifié JDK. J'ai ensuite exécuté le fichier POM à l'aide de Run Configurations. Choisissez l'onglet JRE et sélectionnez l'option "Espace de travail par défaut ..." Voici les images

enter image description here

enter image description here

4

Énoncé du problème = Aucun compilateur n'est fourni dans cet environnement. Peut-être que vous utilisez un JRE plutôt qu'un JDK? intellij

Solution

Veuillez régler le Environment variabl e comme ci-dessous pour résoudre le problème.

Nom de la variable: Java_HOME

Valeur de la variable: C:\Program Files\Java\jdk1.8.0_202

Nom de la variable: M2_HOME

Valeur de la variable: C:\Program Files\Apache-maven-3.6.0

En outre, Ajoutez Java et le chemin maven dans "Variables système" comme ci-dessous:

  1. C:\Program Files\Java\jdk1.8.0_202\bin

  2. C:\Program Files\Apache-maven-3.6.0\bin

3
Navdeep Ghotra

J'ai une solution.

La solution la plus courante à ce problème consiste à changer l'emplacement de jdk en tant que mon JRE installés au lieu du emplacement du JRE mais cela n’a pas résolu mon problème cette fois-ci.

Alors j'ai fait le ci-dessous pour résoudre le problème. Développez l'onglet JRE installé et vous trouverez un environnements d'exécution onglet.

Cliquez sur votre environnement d'exécution préféré. Dans mon cas, c'était JAVASE-1.8 . Là, il montre 2 options. JDK et JRE . Sélectionnez JDK et le problème est résolu.

enter image description here

3
Vero J

Il existe une autre réponse possible à cette question, et je suis peut-être la seule personne assez idiote pour l'avoir trouvée par hasard, mais je pense que cela vaut la peine d'être ajoutée, car aucune des autres réponses ne s'appliquait car j'avais déjà ces paramètres corrects.

Lorsque vous installez un kit JDK, le programme d'installation vous demande où vous souhaitez installer les fichiers. Par défaut, sous Windows, cela ressemble à quelque chose comme C:\Program Files\Java\jdk1.8.0_74 (ou quelle que soit la version que vous installez).

Il vous demande ensuite un répertoire pour installer le JRE, qui ressemble par défaut à quelque chose comme C:\Program Files\Java\jre1.8.0_74.

Notez que l'un est jdk 1.8.0_74 et l'autre est jre 1.8.0_74

J'étais pressé et pensant que le programme d'installation me posait la même question deux fois, définissez les emplacements d'installation de mes JDK et JRE sur D:\devtools\jdk\jdk1.8.0_74, ce qui a pour effet de remplacer le JDK par le JRE. Cela a entraîné (entre autres choses) un javac.exe manquant dans ma corbeille JDK et la même erreur rapportée ici par l'OP dans toutes mes versions maven.

3
Sam

Je viens de perdre 3 heures avec ce problème jusqu'à ce que je réussisse à le faire fonctionner. J'ai eu cette erreur dans le terminal Eclipse lors de l'émission d'une commande de compilation mvn:

Aucun compilateur n'est fourni dans cet environnement. Peut-être que vous utilisez un JRE plutôt qu'un JDK?

J'ai donc lu ici que je dois créer une nouvelle variable système appelée Java_HOME et la faire pointer vers le dossier d'installation de jdk. Cependant, cela a généré une autre erreur:

L'option source 1.5 n'est plus prise en charge. Utilisez 1.6 ou plus tard

Impossible de trouver un correctif pour celui-ci alors ...

Le correctif pour résoudre le problème est d'installer Java SE Development Kit 8! J'utilisais 9 en pensant que si c'était le cas au plus tard ça doit être mieux ...

En tous cas...

  1. Désinstallez toutes les versions de Java de votre ordinateur.
  2. Installez JDK8 à partir d’ici: http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

  3. Définissez ensuite la valeur environnementale du système Java_HOME - tutoriel ici: https://docs.Oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. Redémarrez Eclipse et profitez-en! (du moins c'est ce que j'ai fait)

En espérant que cela épargne à un pauvre vagabond quelques ennuis.

2
JustNatural

Dans mon cas, le chemin de la variable système avait l'emplacement "C:\ProgramData\Oracle\Java\javapath".

Dans l'emplacement "C:\ProgramData\Oracle\Java\javapath", javaw uniquement. Donc, je reçois la même erreur.

Une fois que j'ai supprimé tous les fichiers du dossier "C:\ProgramData\Oracle\Java\javapath", mon erreur a été résolue.

2
Raja

Je recevais la même erreur lorsque j'ai créé une nouvelle instance EC2 ubuntu 16.04 avec Java déjà installé dessus et lors de l'exécution de mvn clean package, j'ai rencontré ce problème et la solution ci-dessous a fonctionné pour moi.

Si vous travaillez sur un serveur Ubuntu, vous pouvez alors essayer d’installer à nouveau Java et vous pouvez utiliser la réponse suivante Comment installer le JDK sur Ubuntu Linux

1
Ishan Ojha

Essaye ça.

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable> path to jdk \bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>
1
Wagh

Ajouter une nouvelle définition JRE (sélectionnez le chemin JDK), a fonctionné pour moi.

http://help.Eclipse.org/neon/index.jsp?topic=%2Forg.Eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

1
Lrodriguez84

j’ai ajouté le chemin jre uniquement dans le chemin var, pas le chemin jdk. Quand jdk chemin a été ajouté au chemin et que le projet maven a fonctionné parfaitement, merci à tous.

1
Sapna

J'ai fait le changement suivant et cela a fonctionné pour moi. J'espère que cela aidera quelqu'un . enter image description here

1
Kunal Khaire

J'ai essayé la plupart des réponses sans succès. Ce qui a fonctionné pour moi a été (après avoir suivi https://stackoverflow.com/a/21279068/240889 ):

  • clic droit sur projet -> Propriétés
  • sélectionnez Java chemin de construction
  • sélectionnez la bibliothèque système JRE
  • cliquez sur éditer
  • En environnement d'exécution sélectionnez un jdk

enter image description here

  • cliquez sur Terminer
  • construire et courir
0
Emile Maras

Bien que la question concerne l’erreur liée à l’installation de Eclipse, mais que vous pensiez pouvoir résoudre le problème avec IntelliJ, l’installation de Windows 10 peut également être utile ici.

1 . Allez à File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Importing

2 . Définissez JDK pour Importer comme indiqué ci-dessous sur Java_HOME

enter image description here

De plus, Java_HOME doit être défini sur JDK chemin dans Variables d'environnement -> Variables système et ajouter %Java_HOME%\bin à Path, variables système.

0
Nafeez Quraishi

En plus de la réponse ci-dessus, je pourrais dire que juste essayer de lancer Maven depuis le terminal (en dehors d’Eclipse). De cette manière, si elle se construit de l'extérieur mais pas dans Eclipse, vous pouvez comprendre que le problème doit être lié à Eclipse.

0
Ad Infinitum

Il existe plusieurs réponses à cette question, mais toutes sont liées à la configuration du chemin correct de JDK, mais avec JRE uniquement, nous pouvons résoudre ce problème.

Nous avons juste besoin de faire appel à déploiement Assembly pour configurer le chemin du fichier war empaqueté du projet Java EE, puis réexécuter maven-install.

Étapes à suivre pour utiliser le déploiement Assembly:

  1. Faites un clic droit sur le projet Jave EE -> cliquez sur Propriétés -> cliquez sur Assemblage de déploiement

  2. Cliquez sur le bouton Ajouter -> Cliquez sur Archives dans le système de fichiers -> Cliquez sur suivant -> Cliquez sur Ajouter -> Allez au répertoire .m2\respository et recherchez le fichier war généré -> Sélectionnez le fichier war -> Cliquez sur le bouton Ouvrir -> Cliquez sur Appliquer -> OK

  3. Faites un clic droit sur le projet -> Cliquez sur Installer Maven sous Exécuter en tant que

Cela construira votre projet avec succès, sans aucune erreur de compilation.

J'espère que cela résoudra le problème sans JDK.

0
S Kumar

Je suis allé dans Préférences -> Java -> JRE installés Je n'ai pas vu le JDK ici. J'ai seulement vu le JRE ici. J'ai donc ajouté le JDK.

ici, nous devons obligatoirement supprimer JRE au lieu de simplement décocher.

0
Monika

Vous manque-t-il une version maven?.

Mis à part les modifications JRE précédentes, je rencontrais toujours le même problème. Il me manquait une dépendance à JUnit après l’ajout, cela fonctionnait bien.

J'espère que cela aidera.

0