✍️

備忘録:SDKMAN!の各サブコマンドの使用方法

2024/03/30に公開

JDK 及び SDK の複数バージョン管理ツール SDKMAN! の各サブコマンドの備忘録。
https://sdkman.io

確認環境

  • macOS 14.4
  • SDKMAN! 5.18.2

サブコマンド一覧

サブコマンド 概要
help [サブコマンド] ヘルプの表示
install <ツール名> [バージョン] [パス] インストール
uninstall <ツール名> <バージョン> アンインストール
list [ツール名] インストール可能バージョンの表示
use <ツール名> <バージョン> 一時的な使用バージョンの切り替え
config 設定ファイルの編集
default <ツール名> <バージョン> デフォルトバージョンの切り替え
home <ツール名> <バージョン> 各ツールのインストールディレクトリの表示
env [init|install|clear] プロジェクト毎の特定バージョンの管理
current [ツール名] 現在の使用バージョンの確認
upgrade [ツール名] 各ツールの最新安定版の確認
version SDKMAN! のバージョン表示
offline [enable|disable] オフラインモードの ON/OFF
selfupdate [force] SDKMAN! のアップグレード
update インストール可能ツール一覧の更新
flush [tmp|metadata|version] 作業データの削除

使い方

1. help

書式

sdk help [サブコマンド]

説明

sdkコマンド及びサブコマンドの使い方を表示する。

コマンド例
$ sdk help
$ sdk help install

2. install

書式

sdk install <ツール名> [バージョン] [パス]

説明

各ツールをインストールする。バージョンを省略した場合は最新安定版をインストールする。Homebrew 等でインストールしたパッケージのパスを指定することで管理対象にすることが出来る。

  • 最新安定版のインストール
    コマンド例
    $ sdk install java
    $ sdk install gradle
    
  • 任意バージョンのインストール
    コマンド例
    $ sdk install java 22-tem
    $ sdk install gradle 8.7
    
  • ローカルパッケージの管理対象化
    コマンド例
    $ sdk install java 21.0.2-homebrew /usr/local/Cellar/openjdk/21.0.2
    

3. uninstall

書式

sdk uninstall <ツール名> <バージョン>

説明

各ツールをアンインストールする。

コマンド例
$ sdk uninstall java 22-tem
$ sdk uninstall gradle 8.7

4. list

書式

sdk list [ツール名]

説明

インストール可能ツールの一覧及びバージョンの一覧を表示する。

  • インストール可能ツールの表示
    コマンド例
    $ sdk list
    
  • インストール可能バージョンの表示
    コマンド例
    $ sdk list java
    $ sdk list gradle
    

5. use

書式

sdk use <ツール名> <バージョン>

説明

各ツールの使用バージョンを一時的に切り替える。指定したバージョンは現在のシェルでのみ使用される。

コマンド例
$ sdk use java 22-tem
$ sdk use gradle 8.7

6. config

書式

sdk config

説明

環境設定ファイル($SDKMAN_DIR/etc/config)をシステムエディタで編集する。

コマンド例
$ sdk config

7. default

書式

sdk default <ツール名> <バージョン>

説明

各ツールのデフォルトバージョンを切り替える。

コマンド例
$ sdk default java 22-tem
$ sdk default gradle 8.7

8. home

書式

sdk home <ツール名> <バージョン>

説明

各ツールのインストールディレクトリを表示する。

コマンド例
$ sdk home java 22-tem
$ sdk home gradle 8.7

9. env

書式

sdk env [init|install|clear]

説明

.sdkmanrcファイルによる特定バージョンへの切り替え等を行う。

  • .sdkmanrcファイルの作成
    コマンド例
    $ sdk env init
    
  • 特定バージョンへの切り替え
    .sdkmanrcファイルのあるディレクトリでコマンドを実行。
    コマンド例
    $ sdk env
    
  • デフォルトバージョンへの戻し
    コマンド例
    $ sdk env clear
    
  • 特定バージョンのインストール
    .sdkmanrcファイルに指定されたバージョンをインストール。
    コマンド例
    $ sdk env install
    

10. current

書式

sdk current [ツール名]

説明

使用中バージョンを表示する。

  • インストール済み全ツールの使用中バージョンの表示
    コマンド例
    $ sdk current
    
  • 指定ツールの使用中バージョンの表示
    コマンド例
    $ sdk current java
    $ sdk current gradle
    

11. upgrade

書式

sdk upgrade [ツール名]

説明

最新安定版の有無を確認する。

  • インストール済み全ツールの最新安定版の確認
    コマンド例
    $ sdk upgrade
    
  • 指定ツールの最新安定版の確認
    コマンド例
    $ sdk upgrade java
    $ sdk upgrade gradle
    

12. version

書式

sdk version

説明

SDKMAN! のバージョンを表示する。

コマンド例
$ sdk version

13. offline

書式

sdk offline [enable|disable]

説明

オフラインモードの ON/OFF の切り替えを行う。オフラインモード ON の状態ではsdk installコマンド等は失敗し、sdk listコマンドはインストール済みバージョンのみを表示する。
ネットワークに接続していない場合は自動的にオフラインモード ON の状態で動作する。

  • オフラインモード ON
    コマンド例
    $ sdk offline
    $ sdk offline enable
    
  • オフラインモード OFF
    コマンド例
    $ sdk offline disable
    

14. selfupdate

書式

sdk selfupdate [force]

説明

SDKMAN! 自身をアップグレードする。

コマンド例
$ sdk selfupdate
$ sdk selfupdate force

15. update

書式

sdk update

説明

インストール可能なツール一覧を更新する。

コマンド例
$ sdk update

grace liquibaseがインストール出来るようになります。

16. flush

書式

sdk flush [tmp|metadata|version]

説明

$SDKMAN_DIRディレクトリ配下の作業データを削除する。 tmpmetadataversionを指定した場合はそれぞれ個別に削除する。

コマンド例
$ sdk flush
$ sdk flush tmp
$ sdk flush metadata
$ sdk flush version

Discussion