普段Javaを使ったりしないが、なんだかんだ3ヶ月ぐらいごとに 必要としていつもいつも思った以上に時間がかかっているため、今回メモを残すことにしました。
まず、Javaを直接システムに使うと後で管理色々と面倒なので Package Managerにお任せしたい。
そのためSDKMANを利用!
1. SDKMANをインストール
最初SDKMANがインストールもしていないので 公式ガイドの通りインストールする。
# インストール
curl -s "https://get.sdkman.io" | bash
# PATHなどを設定する
source "/Users/ignacio/.sdkman/bin/sdkman-init.sh"
# 確認
sdk version
注意: もし curl 56 recv failure とか出たら 別のネットワークに切り替えた方がいい。これはSDKMANのせいではなく、おそらくそのネットワークの設定が何か関わっていると思われる。
ちなみに、上記の無事に実行していると ~/.zshrc
に以下の内容が追加される。
2. SDK manを使って適切なJava versionを特定
まずJavaを検索し
sdk list java
良さそうなもののIdentierを覚えておきます。
リストが長すぎて filterしたいは
sdk list java | grep sem
結果:
# Semeru | | 20.0.2 | sem | | 20.0.2-sem
# | | 20.0.1 | sem | | 20.0.1-sem
# | >>> | 17.0.8 | sem | installed | 17.0.8-sem
# | | 17.0.8.1 | sem | | 17.0.8.1-sem
# | | 17.0.7 | sem | | 17.0.7-sem
# | | 11.0.20 | sem | | 11.0.20-sem
# | | 11.0.20.1 | sem | | 11.0.20.1-sem
# | | 11.0.19 | sem | | 11.0.19-sem
例: 「攻めるJava」をインストールしたい!
sdk install java 17.0.8-sem
2.1 SDKMANの簡単な使い方
複数のバージョンがあればデフォルトのバージョンを指定したい(変えたい)時は 以下のコマンドで
sdk default java 17.0.8-sem
また、現在のバージョンはどれかを調べたい時に 以下のコマンドで
sdk current java
3. インストールの確認
java --version
# openjdk 17.0.8 2023-07-18
# IBM Semeru Runtime Open Edition 17.0.8.0 (build 17.0.8+7)
# Eclipse OpenJ9 VM 17.0.8.0 (build openj9-0.40.0, JRE 17 Mac OS X aarch64-64-Bit 20230718_382 (JIT enabled, AOT enabled)
# OpenJ9 - d12d10c9e
# OMR - e80bff83b
# JCL - 77b0f754805 based on jdk-17.0.8+7)
期待通り!
echo $JAVA_HOME
# /Users/ignacio/.sdkman/candidates/java/current
上記のファイルが実はsoft linkなので readlinkで解決すると 期待通りの17.0.8が表示される。
readlink $JAVA_HOME
# 17.0.8-sem
全て期待通り!
4. オマケ: XcodeのBuild ScriptにもSDKMANのJAVA_HOMEを認識させる
前ここに方法を書いていたが、書きたい内容が増えたり本記事と内容が異なったりして専用のPostにしました。よかったらこちらをお読みください XcodeにJAVA_HOMEを認識させる
これでスッキリ!
See you later! 🐊