Zenn
Closed7

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

enchanenchan

Overview

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

enchanenchan

初期セットアップ直後から /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/

今は何もない

enchanenchan

探す:

% 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
enchanenchan

インストール済みの環境をリストするには -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
...
enchanenchan

特定のバージョンに絞るには -v

% /usr/libexec/java_home -v 21
/opt/homebrew/Cellar/openjdk@21/21.0.6/libexec/openjdk.jdk/Contents/Home

この出力を JAVA_HOME につなげば、jdkのバージョンを簡単に切り替えられる

enchanenchan

ということで作った:

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ヶ月前にクローズされました
作成者以外のコメントは許可されていません