ことのはじまり
MacBookProを新調しました。改めてOracleの公式dmgからJavaのいくつかのバージョンをインストール。JAVA_HOME
を利用してパスを通そうとしたそのとき。。
さっきインストしたやつらどこいった!?
ちなみにこれは、下記ディレクトリに各バージョンがインストールされます。
/Library/Java/JavaVirtualMachines/
/usr/libexec/java_home
半端ないって
以前は毎度あくせくググっていた(メモっとけ)が、とっても便利なコマンドがあることを知りました。
/usr/libexec/java_home -V
でインストール済Java
の場所リストを表示してくれます。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
10.0.2, x86_64: "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
1.8.0_181, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
JAVA_HOME
には小文字
お望みのversionのJavaを利用するには、パスを通す必要があります。見通しの良さのためにJAVA_HOME
をexportしてからパスに含めましょう。
だけどフルパス指定するの面倒。しかも切り替える可能性がある場合などは、もう毎度面倒。
そんなときは、-v(小文字)
オプションを付けましょう。指定のJava
バージョンのパスのみを表示してくれます。
単体でコマンド打つとこのように表示されます。
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
exportするときは
.bash_profile
、.zshrc
などで利用するときは、
export JAVA_HOME=`/usr/libexec/java_home -v 10`
export PATH=$JAVA_HOME/bin:$PATH
のように記述することができます。これならバージョンを切り替えたいときもすごく簡単。
しかも、java10を指定したいときは、-v 1.10
、-v 10
どちらでも認識してくれるいい子っぷりで泣けます。
Javaのパスを通すときまとめ
- インストール済の
Java
のインストール場所がわからなくなったら**V(大文字)**オプション
$ /usr/libexec/java_home -V(大文字)
- パス通すときは
JAVA_HOME
使う - Javaのパスは**v(小文字)**オプション
export JAVA_HOME=`/usr/libexec/java_home -v 10`
export PATH=$JAVA_HOME/bin:$PATH