macOSでbashからzshに移行したらSDKMANで入れたJDKが見つからなかった時の対策


bashからzshへ

macOS Catalinaからデフォルトのシェルがbashからzshに変更されました。

僕はHomebrewで別途bashをインストールしていたので、OSアップデートをしてもbashから変更されませんでした。

ただ、物は試しだと思い、マニュアルでzshに変更してみました。

Javaが無いだと!?

しかし、そうするとMavenとか使ったときにJavaが無いよとか言われます。

エラーメッセージ
$ mvn clean package
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
No Java runtime present, requesting install.

ダイアログでも「"java"コマンドラインツールを使用するには、JDKをインストールする必要があります」と言われます。

JDKは、bashを使っていた頃にSDKMANを使って入れています。bashのころは問題なく使えていました。

対策

bashのときにSDKMANをインストールした際、~/.bash_profileの最後尾に下記の記述が追加されています。

~/.bash_profile

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/ユーザー名/.sdkman"
[[ -s "/Users/ユーザー名/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/ユーザー名/.sdkman/bin/sdkman-init.sh"

ユーザー名 の部分は、ご自分のユーザー名に置き換えてください

この記述をコピーして~/.zshrcの最後尾に追加すると、問題が解消されました!