複数のJavaを切り替えて使用する方法 on Linux(CentOS)

複数のJavaを切り替えて使用するには alternativesコマンド を使用します。

使い方は次のとおり。今回は Java8 と Java11 がインストールされた環境で Java の切り替えを行います。+ の付いている方が有効になっている方で、今有効なのは Java8 です。どちらを有効にするか選択を求められますので、Java11 を有効にするため 2 を選択します。

# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/jre/bin/java)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64/bin/java)

Enter to keep the current selection[+], or type selection number: 2

設定完了すると特に何も表示されません。

きちんと設定されたか、もう一度 alternativesコマンド を実行して確認します。

# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/jre/bin/java)
 + 2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64/bin/java)

Enter to keep the current selection[+], or type selection number: 

+ が Java11 の方に表示されていて、きちんと設定されていることが確認できました。

次の Javaコマンドで有効になっているバージョンを確認します。

# java -version
openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.17.0.8-2.el7_9) (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.17.0.8-2.el7_9) (build 11.0.17+8-LTS, mixed mode, sharing)

こちらも Java11 が有効になっていることが確認できました。