Ne définissez pas JAVA_HOME avec le chemin complet

Quand j'ai essayé d'utiliser mvn après un long moment, j'étais accro à la spécification de JAVA_HOME, alors j'ai fait un mémorandum.

mvn propre!

Après la mise à jour vers High Sierra, les dépendances du projet Java que j'utilise au travail ont été réinitialisées, j'ai donc pensé que mvn était propre pour le moment.

$ mvn clean
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

Whaaaaaaaat

Apparemment, la variable d'environnement JAVA_HOME est mauvaise. Comment l'avez-vous mis en place?

C'est une passe complète

$ cat ~/.bash_profile

...

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

$ java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

Puisqu'il est spécifié avec le chemin complet, il se transforme rapidement en une variable d'environnement sans signification dès que la version JDK est mise à niveau. Au contraire, c'était souvent sans danger jusqu'à présent.

Il devrait y avoir une méthode de réglage plus intelligente

Apparemment, cette notation vous suivra automatiquement même si vous mettez à jour le JDK. Enregistrez-le avec ce chemin ...

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

résultat

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home

$ mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T16:58:13+09:00)
Maven home: /usr/local/Cellar/maven/3.5.2/libexec
Java version: 1.8.0_172, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"

Le réglage est terminé avec succès. J'avais l'habitude de copier et coller, mais j'y suis accro si je ne fais pas attention aux variables environnementales.

Recommended Posts

Ne définissez pas JAVA_HOME avec le chemin complet
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
JAVA_HOME et chemin
Configurer GitLab avec docker
Validez les paramètres de chemin avec @RequestMapping