🦁

Java環境をHomebrewからSDKMANへ移行する手順

に公開

なんで?

これまでは、HomebrewでJavaを管理してたけど、複数のJavaバージョンを切り替えたり、より柔軟に管理したいからSDKMANに移行したい。いまさらやけどな。

解決方法

1. SDKMANのインストール

まず、SDKMANをインストールするで。

curl -s "https://get.sdkman.io" | bash

インストールが終わったら、新しいターミナルを開くか、以下のコマンドを実行してSDKMANの環境を読み込んでな。

source "$HOME/.sdkman/bin/sdkman-init.sh"

2. SDKMANでJavaをインストール

SDKMANを使ってOpenJDK 17と21をインストールするで。

OpenJDK 17のインストール

sdk install java 17.0.10-tem

OpenJDK 21のインストール

sdk install java 21.0.2-tem

インストール中に「デフォルトにする?」って聞かれたら「y」でええで。

3. デフォルトのJavaバージョンを設定

もしデフォルトバージョンが設定されてへんかったら、以下のコマンドで設定できるで。

sdk default java 21.0.2-tem

4. HomebrewでインストールされたJavaのアンインストール

SDKMANでの設定が終わったら、Homebrewで入れた古いJavaはもういらんから消しとこ。

まず、Homebrewで openjdk@17 がインストールされているか確認するで。

brew list | grep openjdk

もし openjdk@17 が表示されたら、以下のコマンドでアンインストールするで。

brew uninstall openjdk@17

5. 環境変数のクリーンアップ

.bash_profile.zshrc に古いJavaの環境変数が残ってたら、SDKMANの設定と競合する可能性があるから削除しとこ。

例えば、以下のような行が残ってたら削除してな。

# HomebrewでインストールされたJavaのパス
export JAVA_HOME=/usr/local/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
export PATH="$JAVA_HOME/bin:$PATH"

6. 設定できたか確認する

最後に、ちゃんとSDKMANで管理されてるJavaが使われてるか確認しよ。

java -version

SDKMANで設定したバージョン(例: openjdk version "21.0.2")が表示されたらOKやで!

まとめ

  • SDKMANをインストールして、複数のJavaバージョンを管理できるようにしたで
  • OpenJDK 17と21をSDKMANでインストールし、21をデフォルトにしたで
  • Homebrewで入ってた古いJavaはアンインストールしたで
  • 環境変数もSDKMANの設定に合わせたで

これでJava環境の管理がもっと楽になるはずやと思う。しらんけど。

Discussion