Mac OS で複数バージョンの Java(JDK) をインストールして使用する

macOS に複数バージョンの Java(JDK) がインストールされている場合に、目的のバージョンをデフォルトに設定する方法

macOS に複数バージョンの Java(JDK) がインストールされている場合に、目的のバージョンをデフォルトに設定する方法について見ていく。

現在デフォルトで使用中の Java バージョンを確認

まず、現在インストールされ、デフォルトで使用中の Java バージョンを確認する。

% java -version
openjdk version "17.0.4.1" 2022-08-12 LTS
OpenJDK Runtime Environment Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS, mixed mode, sharing)

上の例では openjdk 17 を使用中であることがわかる。

インストール済みの Java バージョンを確認

次に、インストールされている Java バージョンを確認する。

% /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    17.0.4 (arm64) "Amazon.com Inc." - "Amazon Corretto 17" /Users/user/Library/Java/JavaVirtualMachines/corretto-17.0.4.1/Contents/Home
    11.0.16.1 (arm64) "Azul Systems, Inc." - "Zulu 11.58.23" /Users/user/Library/Java/JavaVirtualMachines/azul-11.0.16.1/Contents/Home
/Users/user/Library/Java/JavaVirtualMachines/corretto-17.0.4.1/Contents/Home

上の内容では Java 17 と 11 の 2 つがインストールされていることがわかる。

JAVA_HOME のパスを変更

次のように JAVA_HOME のパスを変更する。

% export JAVA_HOME=$(/usr/libexec/java_home -v 11)
% source ~/.zshrc

上の例では JAVA_HOME のパスを JDK 11 に変更した。

現在使用中の Java バージョンを再確認

変更が正しく反映されたか、現在インストールされ使用中の Java バージョンをもう一度確認する。

% java -version
openjdk version "11.0.16.1" 2022-07-19 LTS
OpenJDK Runtime Environment Zulu11.58+23-CA (build 11.0.16.1+1-LTS)
OpenJDK 64-Bit Server VM Zulu11.58+23-CA (build 11.0.16.1+1-LTS, mixed mode)

上の例のように openjdk 11 に変更されたことがわかる。

環境変数として設定

上の設定を行った後、コマンドを閉じて再度開くと、元の JDK バージョンに戻っているはずである。

設定ファイルで環境変数を変更

これを次のように設定ファイル(~/.zshrc)の環境変数に入れて、毎回変更されるようにする方法がある。

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

使用しない JDK を削除

または、使用しない JDK を次のように完全に削除してもよい。

% cd /Users/cjos/Library/Java/JavaVirtualMachines/
% sudo rm -rf corretto-17.0.4.1