備忘録です。
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のままだったりした💦。
解決策
open ~/.zshrc
で、.zshrc を開きます。
(macの場合特にこだわりがなければzshがデフォルトなので。)
# 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)
とても初歩的な投稿なのは承知ですが、たまにやろうとすると案外モタつくので、、