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

je suis en train de compiler un projet à Eclipse en utilisant m2eclipse. J'ai placé 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?
474
demandé sur Peter Mortensen 2013-10-29 14:11:50

26 réponses

  1. Sur votre environnement de développement Eclipse, allez dans Fenêtre > Préférences > Java > Installé Jre > et vérifiez votre installé Jre . Vous devriez avoir une entrée avec un JDK là.
  2. sélectionnez L'exécution Env comme afficher dessous. Click OK
  3. Puis Clic-Droit sur votre Projet -> Maven -> Projet de mise à Jour

en outre, vous pourriez avoir à changer Maven JRE (voir la réponse @jlars62) qui est comme suit. Goto Run -> Run Configurations, en sélectionnant le Maven Construction que je courais (à partir du panneau de gauche). Ensuite, j'ai cliqué sur l'onglet JRE et j'ai sélectionné L'option Workspace default JRE

enter image description here

741
répondu jaipster 2017-04-04 05:24:41

pour moi, c'est exactement ce que se plaint le maven d'eclipse

enter image description here

donc, j'appuie sur Edit bouton et changer le chemin vers le dossier JDK, puis nettoyer le projet et tout commence à fonctionner

101
répondu Thai Tran 2014-04-25 09:13:05

pour moi, rien n'a fonctionné jusqu'à ce que je fasse ce changement à mon 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 exécutait dans un JRE, pas le JDK. Rien de ce que j'ai fait n'a changé cela, y compris l'ajout de ceci à l'éclipse.ini:

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

finalement, je n'ai jamais eu m2e à exécuter dans un JDK, mais configurer explicitement le compilateur Java (comme ci-dessus) a fait l'affaire.

88
répondu ksnortum 2014-01-01 00:32:10
  1. définissez la variable d'environnement JAVA_HOME au dossier racine de JDK - requis si vous utilisez la ligne de commande ou maven(google pour cette variable)
  2. dans les propriétés du projet dans la section Java Compiler sélectionnez Requis JDK-si vous exécutez directement à partir d'eclipse
70
répondu msangel 2018-07-12 22:01:05

dans mon cas, il a été résolu en faisant ceci:

allez dans votre "configuration D'exécution" et configurez votre JRE en JDK.

Select the right JDK for your Runtime

Select default JRE

j'ai copié réponse juste au cas où il est supprimé pour une raison quelconque, mais la source est ici

32
répondu Eduardo Dennis 2017-05-23 12:10:44

j'ai eu cette erreur en essayant de faire une Maven build à partir de l'intérieur d'eclipse.

pour moi, la réponse allait à Run - > Run Configurations , en sélectionnant le Maven Build que j'exécutais (à partir du panneau de gauche). Puis, j'ai cliqué sur l'onglet JRE et j'ai sélectionné l'option Workspace default JRE

29
répondu jlars62 2014-09-30 18:15:14

Go pour windows -> Préférences -> Java -> Installé Jre

peut être déjà ajouté enter image description here

cliquez sur Add - > Standard VM - > suivant - > Directory

et rechercher le JDK dans mon cas le chemin était C:\Program Files\Java\jdk1.8.0_111

, puis Cliquez sur terminer.

vous verrez fenêtre comme ceci enter image description here

sélectionnez JDK - > Apply - > Ok

et vous avez fini.

23
répondu Ishu 2016-12-06 16:43:22

une alternative si la réponse de jaipster ne fonctionne pas est d'aller à:

Window > Preferences > Java > Installé Jre

puis éditer le jre pour qu'il pointe vers le jdk et non le jre (la maison JRE déposée dans l'éditeur de paquets jre)

ça a marché pour moi.

9
répondu brunoais 2014-03-17 10:54:32

j'ai essayé tout ce qui précède, cependant, obtenir toujours le même message d'erreur.

dans mon cas, un JRE réel a été incorrectement utilisé comme bibliothèque système JRE dans le chemin de construction spécifique au projet, ce qui dépassait évidemment tous les autres paramètres discutés ici.

si c'est le cas, essayez ce qui suit:

  1. ouvrir les bibliothèques du projet Java Build Path: clic droit sur" Project > Build Path > Configure Build Path..."et sélectionnez l'onglet "Bibliothèques".
  2. sélectionnez l'entrée" bibliothèque système JRE "et cliquez sur"Supprimer".
  3. Et Cliquez Sur "Ajouter À La Bibliothèque...".
  4. un sorcier apparaît. Sélectionnez " JRE System Library "et cliquez sur "Next>".
  5. Maintenant, sélectionnez le JDK correct (dans mon cas "Workspace default JRE", que je configuré en utilisant un JDK).
  6. Fermer l'assistant en cliquant sur la "Finition".
  7. Fermer Dialogue "propriétés" en appuyant sur "OK".
9
répondu Sir Hackalot 2016-09-06 11:16:22

si vous exécutez la commande Maven 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:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"
6
répondu Mahder 2016-07-26 10:17:04

il y a plusieurs options à spécifier.

Steps: Droit sur le projet dans l'explorateur de projet Cliquez sur Exécuter-> Exécuter Configuration -> Cliquez sur Maven Build -> Cliquez sur votre config/ou de créer une nouvelle config. Vous verrez la fenêtre comme le snapshot donné ci-dessous, cliquez sur l'onglet JRE.

Vous voyez, vous avez 3 options 1) de l'espace de travail par Défaut JRE 2)Environnement d'Exécution 3)autres JRE enter image description here 1) l'espace de travail La valeur par défaut JRE est définie à partir du menu' Window ' en haut - > Preferences - > Java - > Installed JREs -ici vous pouvez ajouter votre jdk enter image description here 2) L'environnement D'exécution jdk peut être défini dans pom.xml comme mentionné 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) Alternate JRE peut être utilisé pour sélectionner un jdk à partir de votre répertoire

6
répondu manntsheth 2017-01-06 20:45:26

j'ai affronté le même problème en essayant de construire un fichier jar de mon application de projet en utilisant mvn clean install , bien que l'application fonctionnait très bien pendant L'exécution D'Eclipse.

la question était, en effet trop naïve, que je n'avais pas mis la variable d'environnement JAVA_HOME . Tout ce que j'ai eu à faire est de mettre la variable D'environnement JAVA_HOME dans le répertoire JDK, assurez-vous qu'elle ne soit pas avant "\ bin et sans semi-colon ";" .

enter image description here

comment je l'ai compris est comme:

L'application a bien fonctionné dans Eclipse comme bibliothèque système JRE se référait à JRE intérieur le dossier JDK au lieu du dossier JRE externe sans JDK. [Comme expliqué très bien dans d'autres réponses]

cette configuration ne s'applique pas: maven commande que nous exécutons à l'invite de commande. Il cherchera toujours la variable JAVA_HOME pour accéder à la bibliothèque du système JRE et quand elle n'est pas trouvée elle se réfère à un dossier JRE externe sans JDK.

6
répondu Dhaval Simaria 2017-08-06 08:35:16

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

env var

  • si vous utilisez eclipse, référez-vous à https://stackoverflow.com/a/21279068/6097074
  • si vous utilisez intellij, juste après avoir ajouté JAVA_HOME ouvrir l'invite de commande à partir du répertoire du projet et exécuter mvn clean install (n'utilisez pas intellij terminal).
4
répondu ankit 2018-07-08 05:59:12

il y a une autre réponse possible à cette question, et je suis peut-être la seule personne assez stupide pour avoir trébuché sur cela, mais je pense que cela vaut la peine d'ajouter, puisqu'aucune des autres réponses appliquées comme j'ai déjà eu ces paramètres corrects.

lorsque vous installez un JDK, l'installateur vous demande où vous voulez installer les fichiers. Par défaut, sur Windows, c'est quelque chose comme C:\Program fichiers\Java\jdk1.8.0_74 (ou quelle que soit la version que vous installez).

il vous demande alors un répertoire pour installer JRE to, qui par défaut est quelque chose comme C:\Program fichiers\Java\jre1.8.0_74.

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

je me dépêchais, et en pensant que l'installateur me posait la même question deux fois, j'ai mis mes deux emplacements d'installation JDK et JRE à D:\devtools\jdk\jdk1.8.0_74, résultant en l'installateur j'écrirai le JDK avec le JRE. Il en est résulté (entre autres) la disparition de javac.exe dans mon JDK bin, et la même erreur que L'OP a rapporté ici dans toutes mes constructions maven.

3
répondu Sam 2016-02-10 02:54:19

j'ai une solution.

la solution la plus courante pour ce problème est de changer "emplacement jdk " comme mon JRES installé au lieu du JRE emplacement mais qui n'a pas résolu mon problème cette fois-ci.

donc j'ai fait ce qui suit pour résoudre le problème. Étendre le installé JREs onglet 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
répondu Vero J 2017-03-24 07:24:59

j'ai perdu 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 courez-vous sur un JRE plutôt que sur un JDK?

alors j'ai lu ici que je dois faire une nouvelle variable système appelée JAVA_HOME et la faire pointer vers le dossier d'installation jdk. Cependant, cette généré une autre erreur:

L'option Source 1.5 n'est plus supportée. Utiliser 1.6 ou plus

N'a pas pu trouver de solution pour celui-ci ainsi...

donc la solution pour tout faire disparaître est d'installer Java SE Development Kit 8! J'utilisais le 9 en pensant que si c'est le dernier, ça doit être mieux...

en tout cas...

  1. désinstaller toutes les versions java à partir de votre ordinateur
  2. installez JDK8 d'ici: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. alors définissez 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! (à du moins c'est ce que j'ai fait)

en espérant que cela épargne à un pauvre errant quelques ennuis.

2
répondu JustNatural 2017-11-30 21:35:05

dans mon cas j'ai eu le chemin de variable système a "C:\ProgramData\Oracle\Java\javapath" lieu.

In "C:\ProgramData\Oracle\Java\javapath" emplacement java, javaw seulement là. Donc, je reçois le même message d'erreur.

une fois que j'ai supprimé tous les fichiers dans "C:\ProgramData\Oracle\Java\javapath" dossier mon erreur a été résolu.

2
répondu MurugaRaja 2018-03-18 08:01:57

j'ai fait face au même problème, l'erreur que j'ai faite était d'ajouter jre path uniquement dans le path var,pas JDK path .Lorsque JDK path a été ajouté à path et construire le projet maven son fonctionnement parfait .Merci à tous

1
répondu Sapna 2015-07-09 17:50:56

essayez ceci.

<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
répondu Wagh 2016-09-06 08:03:16

Ajouter nouvelle définition JRE (sélectionner chemin JDK), travaillé pour moi.

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

1
répondu Lrodriguez84 2017-02-04 17:42:44

j'ai fait le changement suivant et cela a fonctionné pour moi.Espérons que cela aide quelqu'un. enter image description here

0
répondu Kunal Khaire 2016-01-19 08:24:56

en plus de la réponse ci-dessus, je pourrais dire que juste essayer d'exécuter Maven à partir du terminal (en dehors D'Eclipse). De cette façon, s'il construit de l'extérieur mais pas dans Eclipse, vous pouvez comprendre que le problème devrait être dans Eclipse.

0
répondu Ad Infinitum 2016-07-25 11:11:56

il y a plusieurs réponses à cette question mais toutes sont liées à la configuration du chemin droit de JDK, mais avec JRE seulement nous pouvons résoudre ce problème.

nous avons juste besoin de faire usage de l'assemblage de déploiement pour configurer le chemin du fichier de guerre empaqueté du projet Java EE et ensuite relancer le maven-install.

étapes pour l'utilisation de l'assemblage de déploiement:

  1. clic droit sur la flèche projet --> cliquez sur Propriétés -- >cliquez sur L'assemblage de déploiement

  2. cliquez sur le bouton Ajouter -- > cliquez sur Archives à partir du fichier Système -- > cliquez sur Suivant -- > cliquez sur Ajouter -- > allez à la .m2\respository répertoire et de recherche pour la guerre de fichier généré --> Sélectionner fichier war -- > cliquer sur le bouton Ouvrir -- > cliquer sur Apply -- > OK

  3. clic droit sur le projet -- > cliquez sur Maven Install sous Exécuter En Tant Que

cela permettra de construire votre projet avec succès, sans aucune erreur de compilation.

Espère que cela résout le problème sans JDK.

0
répondu S Kumar 2017-01-25 10:18:54

est-ce que vous manquez une construction maven.

mis à part les changements JRE ci-dessus.J'ai encore fait face à un problème similaire.Je manquais la dépendance de JUnit après avoir ajouté qu'elle fonctionnait bien.

Espérons que cela aidera.

0
répondu Mohammed Sarfaraz 2017-04-09 08:28:10

j'ai eu la même erreur quand j'ai créé une nouvelle instance EC2 ubuntu 16.04 avec Java déjà installé dessus et pendant que j'exécutais 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, alors vous pouvez essayer d'installer Java à nouveau et pour cela vous pouvez utiliser cette réponse comment installer le JDK sur Ubuntu Linux

0
répondu Ishan Ojha 2018-09-04 11:48:37