使用方法
SDKのインストール
最新安定版
以下のコマンドを実行して、選択したSDK(例:Java JDK)の**最新安定版**をインストールします。
sdk install java
以下のような出力が表示されます。
Downloading: java 21.0.4-tem
In progress...
######################################################################## 100.0%
Installing: java 21.0.4-tem
Done installing!
このバージョンを**デフォルト**として設定するかどうかを確認するメッセージが表示されます。
Do you want java 21.0.4-tem to be set as default? (Y/n):
_はい_(または_Enterキーを押す_)と答えると、その後開かれるすべてのシェルで、このバージョンのSDKがデフォルトで使用されるようになります。
Setting java 21.0.4-tem as default.
特定のバージョン
SDKの**特定の**バージョンが必要ですか?必要なバージョンを指定するだけです。
sdk install scala 3.4.2
以降の手順は上記と同じです。
ローカルバージョンのインストール
スナップショットバージョンを使用していますか?既にローカルインストールがありますか?ローカルインストールへのパスを指定して、ローカルバージョンをセットアップします。
sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT
sdk install java 17-zulu /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
ローカルバージョン名(上記の例では_3.0.0-SNAPSHOT_と_17-zulu_)は、利用可能なバージョン名のリストにまだ存在しない一意の名前である必要があります。
バージョンの削除
インストールされているバージョンを削除します。
sdk uninstall scala 3.4.2
ローカルバージョンの削除は、ローカルインストールを削除するものではありません。
候補のリスト表示
利用可能な候補のリストを取得するには
sdk list
これは、名前、現在の安定したデフォルトバージョン、WebサイトのURL、説明、および各候補の簡単なインストールコマンドを含む、検索可能なアルファベット順のリストを表示します。出力は `less` にパイプされるため、標準のキーボードショートカットを使用でき、`q` で終了できます。
================================================================================
Available Candidates
================================================================================
q-quit /-search down
j-down ?-search up
k-up h-help
--------------------------------------------------------------------------------
...
--------------------------------------------------------------------------------
Java (21.0.4-tem) https://projects.eclipse.org/projects/adoptium.temurin/
Java Platform, Standard Edition (or Java SE) is a widely used platform for
development and deployment of portable code for desktop and server environments.
Java SE uses the object-oriented Java programming language. It is part of the
Java software-platform family. Java SE defines a wide range of general-purpose
APIs – such as Java APIs for the Java Class Library – and also includes the Java
Language Specification and the Java Virtual Machine Specification.
$ sdk install java
--------------------------------------------------------------------------------
...
バージョンのリスト表示
候補バージョンのリストを取得するには
sdk list groovy
これにより、SDKの利用可能なバージョン、ローカルバージョン、インストール済みバージョン、および現在のバージョンを示すリストビューが表示されます。
================================================================================
Available Groovy Versions
================================================================================
> * 2.4.4 2.3.1 2.0.8 1.8.3
2.4.3 2.3.0 2.0.7 1.8.2
2.4.2 2.2.2 2.0.6 1.8.1
2.4.1 2.2.1 2.0.5 1.8.0
2.4.0 2.2.0 2.0.4 1.7.9
2.3.9 2.1.9 2.0.3 1.7.8
2.3.8 2.1.8 2.0.2 1.7.7
2.3.7 2.1.7 2.0.1 1.7.6
2.3.6 2.1.6 2.0.0 1.7.5
2.3.5 2.1.5 1.8.9 1.7.4
2.3.4 2.1.4 1.8.8 1.7.3
2.3.3 2.1.3 1.8.7 1.7.2
2.3.2 2.1.2 1.8.6 1.7.11
2.3.11 2.1.1 1.8.5 1.7.10
2.3.10 2.1.0 1.8.4 1.7.1
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
バージョンの使用
現在の端末で特定のバージョンを使用することを選択します。
sdk use scala 3.4.2
これは、**現在のシェルのみ**の候補バージョンを切り替えることに注意することが重要です。この変更を永続的にするには、代わりに `default` コマンドを使用します。
デフォルトバージョン
特定のバージョンをデフォルトにすることを選択します。
sdk default scala 3.4.2
これにより、後続のすべてのシェルはバージョン3.4.2を使用して起動します。
現在のバージョン
候補に現在何が使用されているかを確認するには
sdk current java
Using java version 21.0.4-tem
**すべて**の候補に現在何が使用されているかを確認するには
sdk current
Using:
groovy: 4.0.22
java: 21.0.4-tem
scala: 3.4.2
Envコマンド
プロジェクトにアクセスするたびに特定のJDKまたはSDKに切り替えたいですか?これは、プロジェクトのベースディレクトリにある `.sdkmanrc` ファイルを使用して実現できます。このファイルは、次のコマンドを実行することで自動的に生成できます。
sdk env init
以下の内容の構成ファイルが現在のディレクトリに作成されました。
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=21.0.4-tem
このファイルには、現在使用されているJDKバージョンが事前に設定されていますが、必要に応じて、サポートされているSDKのキーと値のペアをいくつでも含めることができます。 `.sdkmanrc` ファイルに存在する構成に切り替えるには、次のコマンドを実行します。
sdk env
次のような出力が表示されます。
Using java version 21.0.4-tem in this shell.
パスも更新され、現在のシェルでこれらのSDKのいずれかを使用できるようになりました。プロジェクトを離れるときは、SDKをデフォルトバージョンにリセットすることができます。これは、以下を入力することで実現できます。
sdk env clear
Restored java version to 21.0.4-tem (default)
新しいプロジェクトをチェックアウトした後、プロジェクトの `.sdkmanrc` ファイルで指定されているSDKが不足している場合があります。これらの不足しているSDKをインストールするには、次のように入力します。
sdk env install
Downloading: java 21.0.4-tem
In progress...
######################################################################## 100,0%
Repackaging Java 21.0.4-tem...
Done repackaging...
Installing: java 21.0.4-tem
Done installing!
ディレクトリに `cd` したときにSDKバージョンを自動的に切り替えたいですか?これは、SDKMAN構成で `sdkman_auto_env=true` を設定することで実行できます。これにより、ディレクトリを離れるときに、プロジェクト固有のSDKもデフォルトバージョンにリセットされることに注意してください。
バージョンのアップグレード
システム上の候補で現在何が古くなっているかを確認するには
sdk upgrade springboot
Upgrade:
springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 3.3.1)
**すべて**の候補で何が古くなっているかを確認するには
sdk upgrade
Upgrade:
gradle (2.3, 1.11, 2.4, 2.5 < 8.9)
grails (2.5.1 < 6.2.0)
springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 3.3.1
SDKMAN! バージョン
SDKMAN! の現在のスクリプトとネイティブバージョンを表示します。
sdk version
SDKMAN!
script: 5.7.0
native: 0.1.3
オフラインモード
当初は_エアプレーンモード_と呼ばれていましたが、これはSDKMAN! がオフラインで動作することを可能にします。オフラインモードを_有効_または_無効_にするために渡すことができるパラメーターがあります。
sdk offline enable
Forced offline mode enabled.
sdk offline disable
Online mode re-enabled!
**オフライン**モードで動作する場合、ほとんどのコマンドは縮小された容量で動作しますが、それでも機能します。例として、listコマンドは、現在インストールされていてアクティブなバージョンのみを表示します。
sdk list groovy
------------------------------------------------------------
Offline Mode: only showing installed groovy versions
------------------------------------------------------------
> 2.4.4
* 2.4.3
------------------------------------------------------------
* - installed
> - currently in use
------------------------------------------------------------
インターネットが利用可能/利用不可能になった場合、オフラインモードも自動的に無効/有効になります。当然のことながら、インターネット接続が必要なコマンドは機能せず、警告が表示されます。
セルフアップデート
SDKMAN! の新しいバージョンが利用可能な場合はインストールします。
sdk selfupdate
新しいバージョンが利用できない場合は、適切なメッセージが表示されます。forceパラメータをコマンドに渡すことで、再インストールを強制できます。
sdk selfupdate force
SDKMAN! の新しいバージョンの自動日次チェックもユーザーに代わって実行されます。
アップデート
SDKMAN! は、新しい(または削除された)候補を認識するために、定期的に更新が必要です。候補メタデータが古くなっている可能性がある場合は、更新方法を指示する警告が表示されます。次のコマンドを実行するだけで、候補キャッシュが更新され、新しい候補をインストールできるようになります。
WARNING: SDKMAN is out-of-date and requires an update.
sdk update
Adding new candidates(s): kotlin
フラッシュ
SDKMAN! のローカル状態をフラッシュする必要があることはめったにありません。flushコマンドはこれを支援するため、ディレクトリを削除する必要はありません。 **`.sdkman/tmp` ディレクトリなどのディレクトリを手動で削除すると、SDKMAN! が壊れます。常に `flush` コマンドを使用してください!**
sdk flush
ホーム
SDKMANをスクリプトで使用する場合、SDKが存在する絶対パスを取得することがよくあります(macOSで `java_home` コマンドがどのように機能するかと似ています)。このため、`home` コマンドがあります。
sdk home java 21.0.4-tem
/home/myuser/.sdkman/candidates/java/21.0.4-tem
ヘルプ
次のコマンドを実行すると、基本的なヘルプを表示できます。
sdk help
これにより、便利なトップレベルのヘルプページが表示されます。このコマンドに修飾子を追加して、特定のサブコマンドに関するヘルプを表示できます。
sdk help install
構成
構成は `~/.sdkman/etc/config` ファイルにあります。構成を編集するには、`sdk config` コマンドを実行して、システムエディターでこのファイルを編集できます。次の構成が可能です。
# make sdkman non-interactive, preferred for CI environments
sdkman_auto_answer=true|false
# check for newer versions and prompt for update
sdkman_selfupdate_feature=true|false
# disables SSL certificate verification
# https://github.com/sdkman/sdkman-cli/issues/327
# HERE BE DRAGONS....
sdkman_insecure_ssl=true|false
# configure curl timeouts
sdkman_curl_connect_timeout=5
sdkman_curl_continue=true
sdkman_curl_max_time=10
# subscribe to the beta channel
sdkman_beta_channel=true|false
# enable verbose debugging
sdkman_debug_mode=true|false
# enable colour mode
sdkman_colour_enable=true|false
# enable automatic env
sdkman_auto_env=true|false
# enable bash or zsh auto-completion
sdkman_auto_complete=true|false