2025年1月21日火曜日

Mac に jenv をインストールし java を実行する方法

Mac に jenv をインストールし java を実行する方法

概要

pyenv のように java にも jenv という環境ごとに java コマンドが使えるツールがあったので使ってみました
jenv をインストールしそこから java をインストールしプロジェクト設定してから使う方法を紹介します

環境

  • macOS 15.2
  • jenv 0.5.7

jenv インストール

  • brew install jenv

.zshrc 設定

  • vim ~/.zshrc
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

システム java インストール

jenv 自体も java なのでシステムでグローバルに使える java が必要になります
Homebrew でインストールした openjdk を Mac のシステムが使用する openjdk に設定し jenv add で追加します

  • brew install java
  • sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
  • jenv add "$(/usr/libexec/java_home)"
  • jenv versions
* system (set by /Users/kakakikikeke/.jenv/version)
  23
  23.0
  23.0.1
  openjdk64-23.0.1

jenv で java のインストール

どうやら pyenv のように jenv 自体に install コマンドはなくシステムにインストールした複数のバージョンの java をプロジェクトごとにコントロールすることができる機能のようです

なので別のバージョンを使いたい場合は

  • brew install openjdk@21
  • sudo ln -sfn /opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-21.jdk
  • jenv add /Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home

という感じでシステムインストールした java のように別名でリンクしリンクした java の JAVA_HOME を jenv add します

これで jenv で管理される java のバージョンが増えました

  • jenv versions
* system (set by /Users/kakakikikeke/.jenv/version)
  21
  21.0
  21.0.5
  23
  23.0
  23.0.1
  openjdk64-21.0.5
  openjdk64-23.0.1

動作確認

実際にプロジェクトを作成して java を切り替えてみます

  • mkdir javaTest
  • cd javaTest
  • jenv local 23
  • vim Test.java
class Test {
    public static void main(String[] args) {
        System.out.println(System.getProperty("java.version"));
    }
}
  • javac Test.java
  • java Test
23.0.1
  • jenv local 21
  • javac Test.java
  • java Test
21.0.5

最後に

jenv を macOS 上で使ってみました
pyenv や rbenv のようにそれ自体にインストールする機能はなくあくまでもマシン上にインストールした複数の java のバージョンをプロジェクトごとに切り替える機能のようです

なので java のインストールは Homebrew が担当し切り替えを jenv で行う感じです

Homebrew で Java をインストールしたい際に PATH に java コマンドを通すコマンドが表示されますがそれを追加してしまうと常にその Java を使ってしまうので以下は .zshrc などに記載しないようにしましょう

export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"

参考サイト

0 件のコメント:

コメントを投稿