web-dev-qa-db-fra.com

JAVA_HOME ne fonctionne pas dans maven

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
5
Amarjit Singh

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"
21
Amarjit Singh

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
6
Anshul Sharma

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

3
Tariq Kamal

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 

  • Espace blanc après la déclaration du chemin $Java_HOME=/home/max/jdk1.8.0_144[[_NO_WHITE_SPACE_AFTER_DECLARATION]] 
  • Ne mettez pas de double apostrophe $Java_HOME="/home/max/jdk1.8.0_144"
  • Ne mettez pas/bin e.g $Java_HOME=/home/max/jdk1.8.0_144/bin <- C'est faux 
1
Adelin

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.

1
Princi Verma