LoginSignup
8
9

More than 5 years have passed since last update.

JAVA_HOMEはフルパスで設定しないようにしよう

Last updated at Posted at 2018-04-29

久々にmvn使おうとしたらJAVA_HOMEの指定でハマったので備忘録がてらメモ。

mvn cleanすっぞ!

High Sierraにアップデートしたら仕事で使ってるJavaプロジェクトの依存関係がリセットされていたので、とりあえずmvn cleanすっかと思った矢先

$ 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

えええええ

どうやら環境変数のJAVA_HOMEが悪いらしい。
どう設定してたっけ。

フルパスじゃん

$ 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)

フルパスで指定してるので、JDKのバージョンアップした途端無意味な環境変数に早変わり。
むしろよく今まで無事だったもんだ。

もっと頭のいい設定方法があるはず

どうやらこの記法ならJDKをバージョンアップしても自動で追ってくれるらしい
このパスで保存してっと...

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

結果

$ 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"

無事設定完了です。
大体コピペで済ませていましたが、環境変数も気をつけないとハマりますね。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9