LoginSignup
0
2

mac で、JDKのバージョンを切り替え - 変更が反映されない!

Last updated at Posted at 2023-07-02

備忘録です。

mac でjava を使う時、環境変数の設定は windows のように設定用のGUIが見当たらないため、ターミナルで行うことになるかと思います。

やりたいこと

まず、 https://jdk.java.net/archive/ にて任意のバージョンのopenjdkをダウンロードし、
Library/Java/JavaVirtualMachines 配下に、

・jdk-11.0.2.jdk
・jdk-20.0.1.jdk

の2つを配置。

現在のバージョンは20.0.1だったとします。

これを 11.0.2 に変更したい。

バージョン確認
echo $JAVA_HOME
# 出力: Library/Java/JavaVirtualMachines/jdk-20.0.1.jdk/Contents/Home

問題

下記のように exportで書き換えても、

export JAVA_HOME="Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home"

再度ターミナルを開くと元(20.0.1)に戻ってしまったり、
ターミナルを再度開かずとも、同じターミナルで
$ java -version
で確認すると、20.0.1のままだったりした💦。

解決策

zshrc を開く
open ~/.zshrc

で、.zshrc を開きます。
(macの場合特にこだわりがなければzshがデフォルトなので。)

.zshrc
# JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-20.0.1.jdk/Contents/Home"
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH

こんな感じで、エディタ上で直接 .zshrc に記載されている JAVA_HOMEを書き換えます。
そうすれば、ターミナルを再度開いた時に .zshrc が自動で参照・実行され、JAVA_HOMEが自動で設定されて、それを元に PATH にも 新しい javaのパスが追加されました。

(追記: STS4(Eclipse)のターミナルウィンドウでは、なぜか .zprofile は読み込まれず、zshrc にversionを指定しないとバージョンが切り替わらないようです。もともと、zshrcではなく.zprofileを編集する、と記事を書いていましたが、訂正しました。)

バージョン確認
java -version
# 出力:
# java version "11.0.2" 2023-04-18
# Java(TM) SE Runtime Environment (build 20.0.1+9-29)
# Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)

とても初歩的な投稿なのは承知ですが、たまにやろうとすると案外モタつくので、、

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