1
2

More than 1 year has passed since last update.

Mac の Homebrew で複数バージョンの Java を利用する

Last updated at Posted at 2022-11-05

概要

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/ApplicationSupport/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 を利用することができるようになった。

1
2
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
1
2