Closed4

Javaのバージョン管理ツール

takecchitakecchi

SDKMAN! 使ってみる

INSTALL

$ curl -s "https://get.sdkman.io" | bash
$ source "/Users/takecchi/.sdkman/bin/sdkman-init.sh"

インストールできるjdkの確認

$ sdk list java

見やすくまとめられてる。

================================================================================
Available Java Versions for macOS ARM 64bit
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 Corretto      |     | 19.0.2       | amzn    |            | 19.0.2-amzn        
 
               |     | 19.0.1       | amzn    |            | 19.0.1-amzn        
 
               |     | 17.0.6       | amzn    |            | 17.0.6-amzn        
 
               |     | 17.0.5       | amzn    |            | 17.0.5-amzn        
 
               |     | 11.0.18      | amzn    |            | 11.0.18-amzn       
 
               |     | 11.0.17      | amzn    |            | 11.0.17-amzn       
 
               |     | 8.0.362      | amzn    |            | 8.0.362-amzn       
 
               |     | 8.0.352      | amzn    |            | 8.0.352-amzn       
 
 Gluon         |     | 22.1.0.1.r17 | gln     |            | 22.1.0.1.r17-gln 
...

今回は11.0.18-amznをインストール

$ sdk install java 11.0.18-amzn

初回だったので自動的にデフォルトに設定されたみたい。

Setting java 11.0.18-amzn as default.

$ java -version
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.18.10.1 (build 11.0.18+10-LTS, mixed mode)

takecchitakecchi

もしかしてHomebrewいいのでは...?

Javaに限らず様々なパッケージをサポートしており、既に入れてるという人が多い印象。(僕も入れてる)

Homebrewでいい感じにJDKのバージョン管理ができるようであればそれで良い気がした。
実際にHomebrewに移行する際に追記する

2024/7/2 手でPATH変えるのが面倒くさい。できれば専用コマンドで楽に管理したい。
後述のjenvで可能みたい

takecchitakecchi

jenv 使ってみる

新しいパソコンにしてから初めてJava実行環境を作る必要が出てきたので今回はjenvを使ってみようと思います。
理由としてはjenvがHomebrewでインストールできるからです。
(dotfilesを使うようになったこともあり、可能な限りHomebrewで完結させたい)

jenvとは

どうやらHomebrewなどでインストールしたJavaをjenvコマンドで簡単に管理できるようにするのが目的のようです。
なのであくまでJavaのインストールなんかはHomebrewなどを介して実行します。

jenv INSTALL

brew install jenv

環境変数

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc

Java INSTALL

試しにAmazonCorretto 21とOpenJDK 17をインストール

brew install --cask corretto@21
brew install openjdk@17

jenvに追加

jenv add $(/usr/libexec/java_home -v 21)
jenv add $(brew --prefix openjdk@17)

実際に使ってみる

$ java -version
openjdk version "21.0.3" 2024-04-16 LTS
OpenJDK Runtime Environment Corretto-21.0.3.9.1 (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.3.9.1 (build 21.0.3+9-LTS, mixed mode, sharing)

$ jenv global 17

$ java -version
openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)

$ jenv versions
  system
* 17 (set by /Users/takecchi/.jenv/version)
  17.0
  17.0.11
  21
  21.0
  21.0.3
  corretto64-21.0.3
  openjdk64-17.0.11

ちゃんと切り替わっていることがわかった。

このスクラップは5ヶ月前にクローズされました