使用方法
安裝 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