Closed7
macOSでJava環境を構成するメモ

Overview
新しいmac環境を手に入れたので、最適な開発環境ってどんな感じだったっけってのを振り返る

初期セットアップ直後から /usr/libexec/java_home
は存在している:
% /usr/libexec/java_home
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
この子に乗せておくと色々管理がラク
JVMは以下の場所にインストールするか、ここにシンボリックリンクを作っておく
% ls -1 /Library/Java/JavaVirtualMachines/
今は何もない

探す:
% brew search '/^openjdk/'
==> Formulae
openjdk openjdk@11 openjdk@17 openjdk@21 openjdk@8
入れる (今回は @17
も入れた):
% brew install openjdk@21
シンボリックリンクの設定ガイドが出るので、指示の通りに実行:
==> Caveats
==> openjdk@21
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-21.jdk

インストール済みの環境をリストするには -V
% /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
21.0.6 (arm64) "Homebrew" - "OpenJDK 21.0.6" /opt/homebrew/Cellar/openjdk@21/21.0.6/libexec/openjdk.jdk/Contents/Home
17.0.14 (arm64) "Homebrew" - "OpenJDK 17.0.14" /opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
/opt/homebrew/Cellar/openjdk@21/21.0.6/libexec/openjdk.jdk/Contents/Home
...

特定のバージョンに絞るには -v
% /usr/libexec/java_home -v 21
/opt/homebrew/Cellar/openjdk@21/21.0.6/libexec/openjdk.jdk/Contents/Home
この出力を JAVA_HOME
につなげば、jdkのバージョンを簡単に切り替えられる

ということで作った:
jdk () {
java_home="/usr/libexec/java_home"
if [ $# -eq 0 ]
then
$java_home -V
echo "To switch JDK version, exec jdk <number_of_version>"
return
fi
version=$1
export JAVA_HOME=$("$java_home" -v"$version")
java -version
}
jdk <バージョン>
とすることで、そのシェル環境で使えるJDK (JRE) を切り替えられる

完了!
このスクラップは2ヶ月前にクローズされました
作成者以外のコメントは許可されていません