概要
Mac の Homebrew で複数バージョンの Java を利用するときのメモ。
なお、複数バージョンの Java を利用する方法としては jEnv を使う手もある。しかし毎回なにで Java を入れているのか忘れて「Homebrew かな?それとも別の何か...?」と混乱するので、もう Homebrew を使うことにした。
既存の Java をアンインストールする場合
Mac から既存の Java をアンインストールしたい場合は以下のようにする。
公式では以下のコマンドが推奨されている。
$ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
$ sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefPane
$ sudo rm -fr ~/Library/Application\ Support/Oracle/Java
しかしこれだけでは JDK までは削除できない。
以下のコマンドで場所を確認しつつ削除する。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
1.8.0_144, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
# 上記で確認したパスの親ディレクトリから消す
$ sudo rm -rf sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk
これで Java を消すことができた。
なお、これでも多少のゴミファイルは残っているのだが、 Java のラッパーが残っているだけで悪影響はない。
もし今後 Java を再インストールするのならそのまま使われる。
ちなみに Homebrew で入れている jdk は以下のように探すことができる。
$ brew list | grep jdk
openjdk
openjdk@11
openjdk@17
OpenJDK のインストール
複数バージョンの JDK を入れていくには以下のようにする。
# インストール
$ brew install openjdk@17
# Java のラッパーに認識してもらうためシンボリックリンクを貼る(上記のインストール時にコマンドを案内されるためそれを参考にする)
sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk@17
認識されている JDK を確認するには以下のコマンドを打ってみる。
$ /usr/libexec/java_home -V
さらに以下を ~/.bachrc や ~/.zshrc に記載する。
JDK のバージョンを切り替えたいときはここの数値を変えればいい。
export JAVA_HOME=`/usr/libexec/java_home -v "19"`
PATH=${JAVA_HOME}/bin:${PATH}
これで複数バージョンの Java を利用することができるようになった。