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

Je comstack un projet dans Eclipse en utilisant m2eclipse. Je définis 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 comstackr 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-comstackr- plugin:3.1:comstack (default-comstack) on project TEST-WEB: Compilation failure [ERROR] No comstackr is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 

  1. Sur votre EDI Eclipse, allez dans Fenêtre > Préférences > Java > JRE installés > et vérifiez vos JRE installés . Vous devriez y avoir une entrée avec un JDK.
  2. Sélectionnez Env Execution comme indiqué ci-dessous. Cliquez sur OK
  3. Cliquez ensuite avec le bouton droit sur votre projet -> Maven -> Update Project

En outre, vous devrez peut-être modifier MREVEN JRE (voir la réponse à @ jlars62), qui est la suivante. Aller à Exécuter -> Exécuter les configurations, en sélectionnant la version de Maven en cours d’exécution (à partir du panneau de gauche). Ensuite, j’ai cliqué sur l’onglet JRE et sélectionné l’option JRE par défaut de l’espace de travail

entrer la description de l'image ici

Pour moi, c’est exactement ce que le maire de l’éclipse se plaint

entrer la description de l'image ici

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

Pour moi, rien n’a fonctionné jusqu’à ce que je modifie mon fichier pom.xml:

  ...  ...  maven-comstackr-plugin 3.1  true C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe     

Autres notes

Je pouvais voir que m2e s’exécutait dans un JRE, pas le JDK. Rien de ce que j’ai fait, y compris l’ajout de ceci à l’eclipse.ini:

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

En fin de compte, je n’ai jamais réussi à exécuter m2e dans un JDK, mais configurer explicitement le compilateur Java (comme ci-dessus) a fait l’affaire.

  1. Définissez la variable d’environnement JAVA_HOME sur le dossier racine JDK – obligatoire si vous exécutez une ligne de commande ou un maven (google pour cette variable)
  2. Dans les propriétés du projet dans la section Java Comstackr, sélectionnez JDK requirejs – si vous exécutez directement depuis eclipse

Dans mon cas, cela a été résolu en faisant ceci:

Accédez à votre “Configuration d’exécution” et configurez votre JRE sur un JDK.

Sélectionnez le bon JDK pour votre runtime

Sélectionnez JRE par défaut

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

J’avais cette erreur en essayant de faire une compilation de maven à partir de l’éclipse.

Pour moi, la réponse allait à Run -> Run Configurations , en sélectionnant la version de Maven Build cours d’exécution (à partir du panneau de gauche). Ensuite, j’ai cliqué sur l’onglet JRE et sélectionné l’option Workspace default JRE

Allez dans Windows -> Préférences -> Java -> JREs installés

peut être jre est déjà ajouté entrer la description de l'image ici

cliquer sur Ajouter -> VM standard -> Suivant -> Répertoire

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

puis cliquez sur Terminer.

vous verrez une fenêtre comme celle-ci entrer la description de l'image ici

sélectionnez JDK -> Apply -> Ok

Et vous avez terminé.

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

Ensuite, éditez le jre pour qu’il pointe vers le jdk et non le jre (le jre home a été classé dans l’éditeur de paquet jre)

Cela a fonctionné pour moi.

J’ai essayé tout ce qui précède, mais j’ai toujours le même message d’erreur.

Dans mon cas, un JRE réel était incorrectement utilisé comme bibliothèque système JRE dans le chemin de construction spécifique au projet, qui remplaçait évidemment tous les autres parameters abordés ici.

Si tel est le cas, essayez ce qui suit:

  1. Ouvrez les bibliothèques spécifiques au projet du chemin de génération Java: Cliquez avec le bouton droit de la souris sur “Projet> Construire le chemin> Configurer le chemin de génération …” et sélectionnez l’onglet “Bibliothèques”.
  2. Sélectionnez l’entrée “JRE System Library” et cliquez sur “Remove”.
  3. Hit “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 l’espace de travail” que j’ai configuré avec un JDK).
  6. Fermez l’assistant en appuyant sur “Terminer”.
  7. Fermez le dialog “Propriétés” en appuyant sur “OK”.

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" 

Il y a plusieurs options à spécifier.

Étapes: À droite du projet dans l’explorateur de projet Allez à Run-> Run Configuration -> Cliquez sur Maven Build -> Cliquez sur votre configuration config / ou créez une nouvelle configuration. Vous verrez la fenêtre comme l’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 entrer la description de l'image ici 1) Espace de travail JRE par défaut est défini dans le menu “Fenêtre” en haut -> Préférences -> Java -> JREs installés – Ici vous pouvez append votre jdk entrer la description de l'image ici 2) Environnement d’exécution jdk peut être défini dans pom.xml comme mentionné par @ksnortum

    maven-comstackr-plugin 3.1  true C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe    

3) JRE alternatif peut être utilisé pour sélectionner un jdk de votre répertoire

J’ai rencontré le même problème en essayant de générer un fichier jar de mon application de projet en utilisant mvn clean install , bien que l’application fonctionnait mvn clean install lors de l’exécution d’Eclipse.

Le problème était, en effet, trop naïf, que je n’avais pas défini la variable d’environnement JAVA_HOME . Tout ce que j’ai à faire est de définir la variable d’environnement JAVA_HOME dans le répertoire JDK, assurez-vous qu’il ne rest pas “\ bin” et sans point -virgule “;” .

entrer la description de l'image ici

Comment j’ai compris c’est comme:

L’application fonctionnait correctement dans Eclipse car JRE System Library faisait référence à JRE dans le dossier JDK au lieu du dossier JRE externe sans JDK. [Comme cela a été très bien expliqué dans d’autres réponses]

Cette configuration ne s’applique pas à la commande maven que nous exécutons à l’invite de commandes. Il recherchera toujours la variable JAVA_HOME pour accéder à la bibliothèque du système JRE et, quand elle ne sera pas trouvée, elle se référera au dossier JRE externe sans JDK.

Pour moi, 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

Alors j’ai enlevé 1. Probablement les échanger corrigeait le problème aussi.

Il y a une autre réponse possible à cette question, et je suis peut-être la seule personne assez stupide pour l’avoir trouvé, mais je pense que cela vaut la peine d’append, car aucune des autres réponses ne s’appliquait déjà.

Lorsque vous installez un JDK, le programme d’installation vous demande où vous souhaitez installer les fichiers. Par défaut, sous Windows, il s’agit de quelque chose comme C: \ Program Files \ Java \ jdk1.8.0_74 (ou la version que vous installez).

Il vous demande ensuite un répertoire pour installer le JRE, qui par défaut est 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 en pensant que l’installateur me posait la même question deux fois, définissez mes emplacements d’installation JDK et JRE sur D: \ devtools \ jdk \ jdk1.8.0_74, entraînant le remplacement du JDK par le JRE. Il en résultait (entre autres) un fichier javac.exe manquant dans mon bac JDK, et la même erreur que celle signalée par l’OP dans toutes mes versions de Maven.

J’ai une solution.

La solution la plus courante à ce problème consiste à modifier l’ emplacement JDK en tant que mes JRE installés au lieu de l’ emplacement JRE, mais cela n’a pas résolu mon problème une seule fois.

Donc j’ai fait le ci-dessous pour résoudre le problème. Développez l’onglet JREs installés et vous trouverez un onglet Environnement d’exécution .

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 là-bas et le problème est résolu.

entrer la description de l'image ici

J’ai juste 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 que vous utilisez un JRE plutôt qu’un JDK?

J’ai donc lu ici que je devais 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 …

Donc, le correctif pour tout faire disparaître est d’installer Java SE Development Kit 8! J’utilisais 9 en pensant que si c’est le dernier, ça doit être mieux …

En tous cas…

  1. Désinstallez toutes les versions 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! (au moins c’est ce que j’ai fait)

En espérant que cela épargnera quelques problèmes au vagrant.

Dans mon cas, le chemin d’access à la variable système contenait l’emplacement “C: \ ProgramData \ Oracle \ Java \ javapath”.

Dans “C: \ ProgramData \ Oracle \ Java \ javapath”, emplacement java, 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.

J’ai fait face au même problème, l’erreur que j’ai faite était que j’ai ajouté le chemin de jre seulement dans le chemin var, pas le chemin de jdk. Quand le chemin de jdk a été ajouté au chemin et construit le projet de maven son fonctionnement parfait.

Essaye ça.

  ...  ...  maven-comstackr-plugin 3.1  true  path to jdk \bin\javac.exe     

Ajouter une nouvelle définition JRE (select path JDK), a fonctionné pour moi.

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

J’ai fait le changement suivant et cela a fonctionné pour moi. J’espère que ça aide quelqu’un. entrer la description de l'image ici

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

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

Nous avons juste besoin d’utiliser l’assemblage de déploiement pour configurer le chemin du fichier war packé du projet Java EE, puis réexécuter le programme d’installation maven.

Étapes pour utiliser l’assemblage de déploiement:

  1. Cliquez avec le bouton 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 dans le 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 Maven Install sous Run As

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

J’espère que cela résout le problème sans JDK.

Est-ce que vous manquez quelque construction de Maven.

Mis à part les changements JRE ci-dessus. J’étais toujours confronté à un problème similaire.

J’espère que cela aidera.

J’ai eu le même problème et je viens d’append JAVA_HOME aux 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é l’invite de commande JAVA_HOME partir du répertoire du projet et exécuté mvn clean install (n’utilisez pas le terminal intellij).

J’avais la même erreur lorsque j’ai créé une nouvelle instance d’EC2 ubuntu 16.04 avec Java déjà installé dessus et que 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 réinstaller Java et utiliser cette réponse. Comment installer le JDK sur Ubuntu Linux