Je n'ai jamais travaillé avec Maven auparavant et je suis les instructions ici. Quand j'exécute la commande
mvn integration-test -Pamp-to-war
Il a initialement 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 quelque chose, faites le moi savoir. Merci.
MODIFIER
Quand je fais echo $Java_HOME
je reçois /usr/lib/jvm/Java-7-openjdk-i386/
Quand je fais mvn -version
Je reçois,
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"
En outre, j'ai découvert ce problème rencontré par quelqu'un d'autre . Mais je ne suis pas sûr de savoir comment procéder pour la solution spécifiée?
Modifications ultérieures.
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
Apparemment, il faut un fichier tools.jar dans le dossier lib de mon $ Java_HOME. Je n'avais pas le dossier lib, j'ai donc réinstallé mon jdk en utilisant la commande
apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib
En outre, ce lien peut aider certaines personnes.
J'ai eu le 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é mon $Java_HOME
, Java -version
et mvn -version
. Tout semble bien se passer pour /usr/lib/jvm/Java-8-openjdk-AMD64
.
Il semble que Java-8-openjdk-AMD64 n’est pas complètement installé par défaut et ne contient que le JRE (malgré son nom "jdk").
Réinstaller le JDK a fait l'affaire.
Sudo apt-get install openjdk-8-jdk
Ensuite, quelques nouveaux fichiers et nouveaux dossiers sont ajoutés à /usr/lib/jvm/Java-8-openjdk-AMD64
et mvn peut à nouveau être compilé.
C’est parce que jre est exécuté plutôt que jdk. Pour l’installer, suivez j. sous les étapes
Installation de Java 8 sous 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 appuyez sur 2
Je vous remercie
Pour moi, cela a fonctionné comme suit . Veuillez regarder la variable d’environnement Java_HOME, si elle pointe vers JRE ou JDK. Si cela indique JRE, vous devrez faire face au problème "Peut-être que vous utilisez un JRE plutôt qu'un JDK". Si c'est le cas, changez le chemin d'accès à JDK.
Modification comme ça, ça a fonctionné pour moi.
Java_HOME C:\Program Files\Java\jdk1.8.0_31
Ajoutez ces configurations 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>
Voici comment j'ai résolu mon problème
clic droit sur le projet> propriétés> compilateur Java (sélectionnez celui que vous utilisez)
c'était 1.5 pour moi mais j'ai 1.8 installé. donc je l'ai changé à 1,8 .. et voila cela a fonctionné !.
Juste en ajoutant plus de détails sur où installer. La raison principale serait que la configuration de Java_HOME dans la variable d'environnement doit pointer vers l'emplacement correct du JDK.
- Vérifier le système -> Paramètres système avancés
- Cliquez sur variable d'environnement
- Ajouter la variable Java_HOME -> "C:\Program Files\Java\jdk1.8.0_141;"
- Éditez "chemin" -> ajoutez% Java_HOME%; au texte existant.
Vérifiez si/usr/bin a 'javac'. Sinon, vous avez installé JRE et devez installer la version de jdk dev de type "Java-1.8.0-openjdk-devel.x86_64".
Cliquez avec le bouton droit de la souris sur votre dossier de projet (Maven), sélectionnez Propriétés et dans la fenêtre des propriétés, sélectionnez à nouveau Java Compiler et voyez ce qui est sélectionné par rapport au 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é par rapport au niveau de conformité du compilateur. Après avoir sélectionné 1.8, la construction a réussi sans cette erreur.
J'ai rencontré le problème même si Java_HOME désignait JDK. Il a fallu du temps pour comprendre pourquoi il lançait l'exception.
Le problème était que je définissais Java_HOME en tant qu'administrateur sur ma machine Windows. Vous devez ajouter la variable d’environnement Java_HOME pointant vers le JDK droit aux paramètres de variable d’environnement de votre profil.
J'ai eu la même erreur et il me manquait la variable utilisateur: Java_HOME et la valeur pour le SDK - "C:\Program Files\Java\jdk-9.0.1" dans mon cas
J'ai eu le même problème après l'installation du package Java-1.8.0-openjdk
sur une AMI AWS Linux. L’hypothèse fausse que j’ai faite est que, comme le fichier s’est terminé par openjdk, il s’agirait de la version de jdk. Ce n'est pas le cas.
La page d’installation de openjdk explique tout clairement.
Le package Java-1.8.0-openjdk contient uniquement le Java Runtime Environnement. Si vous souhaitez développer des programmes Java, installez le fichier Package Java-1.8.0-openjdk-devel.
Si vous avez déjà installé le package Java-1.8.0-openjdk, laissez-le ainsi que la valeur Java_HOME s'il fonctionne pour le JRE et installez le package Java-1.8.0-openjdk-devel à l'aide de yum install Java-1.8.0-openjdk-devel -y
.
Pour résoudre mon problème sous Linux qui n’a pas de JDK, je télécharge simplement le JDK et le télécharge sur le serveur Linux, puis tapez: