My RSS Reader

Description about Blog Author


SDKMANのバージョン管理について調べてみた

前回の記事でも説明したように、SDKMANはJava自身やJavaベースのSDKのパッケージ管理ツールです。

sdkman.io

私は普段Macのソフトウェア管理にHomebrewを使っており、Homebrewでも対象となるソフトウェアのパッケージ管理はできるのですが、 特定のバージョンのJavaが必要なものの、Homebrewではそのバージョンの利用が厳しかったため、一部についてはHomebrewからこちらに変えました。 その辺は前の記事で書いています。

devops-blog.virtualtech.jp

そういえば前の記事では概要やインストール方法までしか書いていなかったのを思い出したため、日頃のメンテナンスはどうするのだろうと思い、調べてみました。

SDKMANのアップグレード

SDKMAN自身のアップデートも定期的に必要ですよね。そんな場合もコマンド一個で済むので簡単でした。

% sdk selfupdate Updating SDKMAN… Installing script cli archive… * Downloading… ######################################################################## 100.0% * Checking archive integrity… * Extracting archive… * Copying archive contents… * Cleaning up…

Installing native cli archive… * Downloading… ######################################################################## 100.0% * Checking archive integrity… * Extracting archive… * Copying archive contents… * Cleaning up…

Updating platform file… Updating config file…

sdkman_auto_answer=false sdkman_insecure_ssl=false sdkman_curl_connect_timeout=7 sdkman_curl_max_time=10 sdkman_beta_channel=false sdkman_debug_mode=false sdkman_colour_enable=true sdkman_auto_env=false sdkman_checksum_enable=true sdkman_native_enable=true sdkman_selfupdate_feature=true sdkman_auto_complete=true

Creating config file backup… Successfully upgraded SDKMAN! Open a new terminal to start using SDKMAN 5.19.0.

To join our BETA channel, simply follow the instructions on: http://sdkman.io/install

Enjoy!!!

SDKMAN! でインストールしたSDKの更新

sdk updateというコマンドがあったのでそれかなと思ったら違うようで、これはリポジトリーの情報を更新するコマンドでした。 Ubuntuのapt updateとかaptの-Uオプションみたいな感じでしょうか。

インストールできるバージョンの確認とインストール

インストールして切り替えるみたいな感じでSDKのアップデートをする感じみたいです。 インストールして動作確認して入らなければ古いSDKバージョンを削除といった運用です。

% sdk update % sdk list java | grep tem
Temurin | | 24.0.1 | tem | | 24.0.1-tem
| | 24 | tem | | 24-tem
| | 23.0.2 | tem | | 23.0.2-tem
| | 21.0.7 | tem | | 21.0.7-tem
| | 21.0.6 | tem | | 21.0.6-tem
| | 17.0.15 | tem | | 17.0.15-tem
| »> | 17.0.14 | tem | installed | 17.0.14-tem
| | 11.0.27 | tem | | 11.0.27-tem
| | 11.0.26 | tem | | 11.0.26-tem
| | 8.0.452 | tem | | 8.0.452-tem
| | 8.0.442 | tem | | 8.0.442-tem

% sdk install java 17.0.15-tem -e -n \033[1;33mDo you want java 17.0.15-tem to be set as default? (Y/n): \033[0m n //相変わらず文字化けしている..とりあえずn

現在のバージョンの確認

インストールの最後で切り替えないを選択した場合は古いバージョンのままです。

% javac –version javac 17.0.14 % java –version openjdk 17.0.14 2025-01-21 OpenJDK Runtime Environment Temurin-17.0.14+7 (build 17.0.14+7) OpenJDK 64-Bit Server VM Temurin-17.0.14+7 (build 17.0.14+7, mixed mode)

新しいバージョンに切り替え

sdk useでSDKのバージョンを切り替えます。直感的!

% sdk use java 17.0.15-tem -e \033[1;32mUsing java version 17.0.15-tem in this shell.\033[0m

切り替わったことを確認

ちゃんと切り替わりましたね。

% javac –version javac 17.0.15 % java –version openjdk 17.0.15 2025-04-15 OpenJDK Runtime Environment Temurin-17.0.15+6 (build 17.0.15+6) OpenJDK 64-Bit Server VM Temurin-17.0.15+6 (build 17.0.15+6, mixed mode)

(新しいバージョンでアプリのテストを行う、ビルドできるか、実行できるかなどを確認)

新しいバージョンをデフォルトにする

新しいバージョンをデフォルトに設定します。そのまんまのコマンドです。

% sdk default java 17.0.15-tem setting java 17.0.15-tem as the default version for all shells.

古いバージョンが不要なら消す

必要に応じて、古いバージョンを消します。

どうしても新しいバージョンで動かない場合は古いバージョンに切り替えて実行し、新しいプロジェクトはできるだけ新しいバージョンで開発なんてことが簡単にできるようです。

% sdk uninstall java 17.0.14-tem

すごいラクでいいですね。

[source]