それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

インストールされてるJDKバージョンを確認し一覧するコマンド

あれ?java どこに入れたっけ

java 本体やコマンド なんてめったに使わないので、ついつい油断しますよね。

java_home という便利なコマンドが有る。

/usr/libexec/java_home

Debian にはコマンドが見当たらなかったのでたぶん、MacOS用だと思うのですが。調べてみたらXcodeに含まれるようですね。

java_homeの出力例

takuya@Desktop$ /usr/libexec/java_home  -V
Matching Java Virtual Machines (6):
    1.8.0_131, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
    1.8.0_31, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
    1.8.0_25, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
    1.7.0_75, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_75.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

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

VisualStudio Codeや .bashrc で使える

VS Codeで java support を入れたときの java.home 設定や

.bashrc での JAVA_HOME JDK_HOME での設定に使える

バージョンごとの使い分けもできる。

rbenv や pyenv 的な使い方ができる。

takuya@Desktop$ /usr/libexec/java_home  1.7.0_75
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
takuya@Desktop$ /usr/libexec/java_home  1.6.0_65
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
takuya@Desktop$

バージョンごとの使い分けに出来るので、

setenv JAVA_HOME=$(/usr/libexec/java_home  1.6.0_65)

などとすれば、Javaのバージョンを切り分けて使えますね。

参考資料

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/java_home.1.html