🦁
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