Java est installé sur ce chemin
$ which Java
/usr/bin/Java
mvn -version donne cette erreur
$ mvn -version
The Java_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: Java_HOME should point to a JDK not a JRE
J'ai essayé certaines des solutions disponibles en ligne, mais celles-ci ne fonctionnent pas pour moi. Certaines de ces solutions ont suggéré d'ajouter
$export Java_HOME = /usr/libexec/Java_home
ou
$export Java_HOME = $(/usr/libexec/Java_home)
en dessous des fichiers
~/.bashrc
~/.bash_profile
~/.profile
De plus, lorsque j'essaie d'exécuter une commande Shell, une erreur telle que
Error: Java_HOME is not defined correctly.
CARBON cannot execute /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/Java
Après avoir lutté pendant presque une journée, j'ai découvert que Maven ne lisait pas le $Java_HOME
de
~/.bashrc
~/.bash_profile
~/.profile
mais il se lit $Java_HOME
à partir de ~.mavenrc
alors finalement, quand j'ai ajouté
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
dans ~.mavenrc
puis obtenu une sortie
mvn -v
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: /usr/local/Cellar/maven/3.5.0/libexec
Java version: 1.8.0_141, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/jre
Default locale: en_CA, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", Arch: "x86_64", family: "mac"
Pour le résoudre, mettez à jour Java_HOME comme suit:
$ vim .bash_profile
export Java_HOME=$(/usr/libexec/Java_home)
$ source .bash_profile
Exécutez Maven à nouveau:
$ mvn -version
maven lit Java_HOME depuis ~/.mavenrc. Ajoutez le chemin pour Java_HOME à ~./Mavenrc et sourcez-le.
$ vim ~/.mavenrc
export Java_HOME = $ (/ usr/libexec/Java_home)
$ source .mavenrc
Sur Ubuntu J'ai rencontré un problème similaire. J'ai configuré $Java_HOME
dans /etc/environment
Comme $Java_HOME=PATH_TO_JDK
par exemple $Java_HOME=/home/max/jdk1.8.0_144
Attention avec
$Java_HOME=/home/max/jdk1.8.0_144[[_NO_WHITE_SPACE_AFTER_DECLARATION]]
$Java_HOME="/home/max/jdk1.8.0_144"
$Java_HOME=/home/max/jdk1.8.0_144/bin
<- C'est faux S'il vous plaît vérifier une fois il devrait y avoir aucun ';' Dans Java_HOME valeur, s'il y a un point-virgule, alors l'erreur ci-dessus apparaît.