Maven error: peut-être utilisez-vous un JRE plutôt qu'un JDK?
Je n'ai jamais travaillé avec Maven avant et je suis les instructions ici. quand j'exécute la commande
mvn integration-test -Pamp-to-war
Il a d'abord téléchargé tout un tas de dépendances, et à la fin il a montré,
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
je suis sur ubuntu 13.04.
Si vous voulez que je vous dise, faites le moi savoir. Grâce.
EDIT
Quand je fais echo $JAVA_HOME
je reçois /usr/lib/jvm/java-7-openjdk-i386/
Quand je fais mvn -version
je me,
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix"
Aussi, j'ai découvert ce problème rencontré par quelqu'un d'autre . Mais je ne suis pas sûr de savoir comment appliquer la solution qui est spécifiée?
autres modifications.
kraken@kraken-Inspiron-1545:/usr/lib/jvm/java-7-openjdk-i386$ ls -l
total 12
drwxr-xr-x 2 root root 4096 Sep 9 10:44 bin
lrwxrwxrwx 1 root root 41 Jul 4 2013 docs -> ../../../share/doc/openjdk-7-jre- headless
drwxr-xr-x 5 root root 4096 Oct 13 2013 jre
drwxr-xr-x 4 root root 4096 Oct 13 2013 man
13 réponses
j'ai été confronté au même problème avec java 8 (ubuntu 16.04), en essayant de compiler en utilisant la ligne de commande mvn
.
j'ai vérifié mes $JAVA_HOME
, java -version
et mvn -version
. Tout semble aller bien en pointant /usr/lib/jvm/java-8-openjdk-amd64
.
il apparaît que java-8-openjdk-amd64 n'est pas complètement installé par défaut et ne contient que le JRE (malgré son nom"jdk").
Re-installer le JDK a fait le tour.
sudo apt-get install openjdk-8-jdk
puis de nouveaux fichiers et de nouveaux dossiers sont ajoutés à /usr/lib/jvm/java-8-openjdk-amd64
et mvn est capable de compiler à nouveau.
apparemment, il faut des outils.fichier jar dans le dossier lib de mon $JAVA_HOME. Je n'avais pas le dossier lib, donc j'ai réinstallé mon jdk en utilisant la commande
apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib
pour moi, ça a marché comme suit. Veuillez regarder la variable D'environnement JAVA_HOME, qu'elle pointe vers JRE ou JDK.? S'il pointait du doigt JRE, vous vous retrouveriez face à "peut-être que vous courez sur un JRE plutôt que sur un JDK". si c'est le cas, changez le chemin vers JDK.
modifier comme ça, ça a marché pour moi.
JAVA_HOME C:\Program fichiers\Java\jdk1.8.151910920"
ajouter cette configuration dans pom.xml
<project ...>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
C'est comment j'ai résolu mon problème
clic droit sur le Projet > Propriétés > compilateur Java (sélectionnez celui que vous utilisez)
il était de 1,5 pour moi, mais j'ai de 1,8 installé. alors je l'ai changé à 1.8.. et voilla ça a marché!.
c'est à cause de l'exécution de jre plutôt que de jdk, pour installer JDK suivre en dessous des marches
installation de java 8 dans amazon linux / redhat
--> yum search java | grep openjdk
--> yum install java-1.8.0-openjdk-headless.x86_64
--> yum install java-1.8.0-openjdk-devel.x86_64
--> update-alternatives --config java #pick java 1.8
et appuyez sur 1
-- > update-alternatives --config javac #pick java 1.8
et presse 2
Merci
vérifier si/usr / bin a 'javac'. Sinon, vous avez installé JRE et vous devez installer JDK dev version comme " java-1.8.0-openjdk-devel.x86_64 "
ajoute juste plus de détails sur où se configurer. La principale raison serait que la configuration JAVA_HOME dans la variable d'environnement devrait pointer vers la position correcte de JDK.
"151940920 Le" Système De Contrôle -> L'Avance Les Paramètres Système
- cliquez sur la variable D'environnement
- ajouter la variable JAVA_HOME - > "C:\Program fichiers\Java\jdk1.8.0_141; "
- éditer "chemin" - > ajouter %JAVA_HOME%; à l'existant texte.
faites un clic droit sur votre dossier projet (Maven one), sélectionnez Propriétés et dans la fenêtre Propriétés, sélectionnez de nouveau le compilateur Java et voyez ce qui est sélectionné en fonction du niveau de conformité du compilateur et assurez-vous qu'il s'agit de la même version que votre jre. Dans mon cas, j'avais 1,8 mais 1,5 a été sélectionné en fonction du niveau de conformité du compilateur. Après avoir sélectionné 1.8 la construction a été réussie sans cette erreur.
j'ai eu la même erreur et je manquais la variable utilisateur: JAVA_HOME et la valeur pour le SDK - "C:\Program Files\Java\jdk-9.0.1" in my case
j'ai eu le même problème après avoir installé le paquet java-1.8.0-openjdk
sur un ami Linux AWS. L'hypothèse incorrecte que j'ai faite, était que parce que le fichier se terminait en openjdk il serait la version jdk. Ce n'est pas le cas.
le "15197092020" openjdk page d'installation explique tout clairement.
le paquet java-1.8.0-openjdk ne contient que L'exécution Java Environnement. Si vous voulez développer des programmes Java puis installer le java-version 1.8.0-openjdk-devel paquet.
si vous avez déjà installé le paquet java-1.8.0-openjdk, laissez-le et la valeur JAVA_HOME s'il fonctionne pour le JRE et installez le paquet java-1.8.0-openjdk-devel en utilisant yum install java-1.8.0-openjdk-devel -y
.
j'ai affronté le problème même si JAVA_HOME pointait vers JDK. Il a fallu du temps pour comprendre pourquoi il rejetait l'exception.
le problème était que J'ai placé JAVA_HOME comme utilisateur administrateur sur ma machine de fenêtre. Vous devez ajouter la variable D'environnement JAVA_HOME pointant vers le JDK droit à votre paramètres variables d'environnement de profil d'utilisateur .
pour résoudre mon problème sur Linux n'ont pas un JDK, je viens de télécharger le JDK et de télécharger sur le serveur Linux, et de taper: tar xvf jdk-8u45-linux-x64.tar.gz