はじめに
複数のプロダクト開発を担当することになりました!
ただし、使用するJavaバージョンが異なります。
頻繁にバージョン切替が必要になりそうなので、サクッと切り替えられるように設定しました。
同じ境遇の方がいたら、ぜひ!
環境
- macOS Ventura
- Apple M1
- arm64
-
uname -m
:アーキテクチャ確認コマンド
-
手順
1. バージョン確認
使用中のJavaバージョン確認
$ java -version
java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)
インストール済のJavaバージョン確認
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
17.0.6 (arm64) "Oracle Corporation" - "Java SE 17.0.6" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
11.0.11 (arm64) "Oracle Corporation" - "Java SE 11.0.11" /Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
2. JAVA_HOME設定、PATH通し
~/.zshrc
# 各バージョンのJAVA_HOMEを設定
export JAVA_17_HOME=$(/usr/libexec/java_home -v 17)
export JAVA_11_HOME=$(/usr/libexec/java_home -v 11)
# Version切替コマンドを簡単に呼び出せるよう、エイリアスを設定
alias java17="PATH=$JAVA_17_HOME/bin:$PATH;export JAVA_HOME=$JAVA_17_HOME"
alias java11="PATH=$JAVA_11_HOME/bin:$PATH;export JAVA_HOME=$JAVA_11_HOME"
※複数コマンドをエイリアス設定する際は、各コマンドを;
で繋げる
※設定ファイル名はshell等により異なります
3. 設定反映
2で設定した内容を有効化する
$ source ~/.zshrc
4. バージョン切替、確認
使用中のJavaバージョン確認
$ jav11
$ java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
java17
-> java11
へ切替成功です!!
たった 1コマンドでサクッとできました!
参考
さいごに
複数バージョンのJava JDKをインストールするなら、事前に設定して楽をするのはどうでしょう!
~/.zshrc
を一度更新するだけです!