ユーザ用ツール

サイト用ツール


macos:java

Java on macOS

インストール

macで使用できるJava(jre, jdk)のディストリビューションは以下のものがある。どれも大きな違いはないので好きなものをインストールするとよい

  • Oracle
  • Adoptium Eclipse Temurin
  • Azul Zulu
  • Amazon Corretto

そのほかMicrosoft, RedHat, SAPなどのビルドも存在する(らしい)。

JDKとJREの違いは、開発ツールの有無(JDKにはjavacコマンドなどが含まれている)。コードを書かないならJREで十分だがJREを配布していないディストリビューションも多い。

JDK, JREのインストール先

/Library/Java/JavaVirtualMachines/以下にインストールされる。不要なJDK, JREのアンインストールはrm -rfで削除

インストールされているJavaを確認

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    25.0.1 (arm64) "Eclipse Adoptium" - "OpenJDK 25.0.1" /Library/Java/JavaVirtualMachines/temurin-25.jre/Contents/Home
    21.0.6 (arm64) "Eclipse Adoptium" - "OpenJDK 21.0.6" /Library/Java/JavaVirtualMachines/temurin-21.jre/Contents/Home
/Library/Java/JavaVirtualMachines/temurin-25.jre/Contents/Home

JAVA_HOME環境変数

java_homeコマンドを使うと、JAVA_HOME環境変数に設定すべき値を取得できる。

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/temurin-25.jre/Contents/Home

ターミナルから使う場合は、~/.zprofileなどで以下の設定をしておく

JAVA_HOME=$(/usr/libexec/java_home 2>/dev/null)
if [[ -n $JAVA_HOME ]]; then
    export JAVA_HOME
fi

なお、macのjavaコマンドは/usr/bin/javaだが、これはJAVA_HOMEを参照して対応するJRE, JDKのjavaコマンドを呼び出すもののようだ。このためインストールしたJRE, JDK以下のbinにパスを通す必要はない。つまりJAVA_HOME環境変数によって使用するバージョンを切り替えることができる。

java_homeコマンドは-vでバージョンを指定できる。

$ /usr/libexec/java_home -v 21
/Library/Java/JavaVirtualMachines/temurin-21.jre/Contents/Home

21に切り替える時は以下のコマンドを実行

export JAVA_HONE=$(/usr/libexec/java_home -v 21)

ディストリビューションの異なる同一バージョンのJDKが複数入っている場合のjava_homeの結果は不明。そういう場合はjava_homeコマンドを使わずに直接JAVA_HOMEにパスを指定する?(やったことないので分からん)

macos/java.txt · 最終更新: by nullpon