跳到主要內容

使用方法

安裝 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 鍵」)將確保之後開啟的所有 shell 都會預設使用此版本的 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

這將呈現一個可搜尋的字母順序列表,其中包含每個候選項目的名稱、目前的穩定預設版本、網站網址、描述和簡易安裝命令。輸出會透過管道傳送到「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

務必瞭解,這只會切換目前 shell 的候選項目版本。若要永久變更,請改用「default」命令。

預設版本

選擇將指定的版本設為預設版本

sdk default scala 3.4.2

這將確保之後開啟的所有 shell 都會以 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.

現在您的路徑也已更新,可以在目前的 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

Home

在指令碼中使用 SDKMAN 時,取得 SDK 所在位置的絕對路徑通常很有用(類似於「java_home」命令在 macOS 上的運作方式)。為此,我們提供了「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