多版本SDK並行管理工具:SDKMAN指南 - Baeldung

banq發表於2020-08-30

隨著Java新版本不斷頻繁釋出,開發人員可能需要在他們的環境中管理多個不同的並行版本的軟體開發工具包(SDK)。但是設定作業系統的環境變數PATH變數有時可能會變得很痛苦。在本教程中,我們將瞭解SDKMAN!可以幫助您輕鬆管理SDK的安裝和選擇。
 

什麼是SDKMAN
SDKMAN是管理多個SDK並行版本的工具,它提供了方便的命令列介面(CLI)和API,用於列出,安裝,切換和刪除候選物件。此外,它還為我們設定了環境變數。
它還允許開發人員安裝基於JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。還支援Maven,Gradle,SBT,Spring Boot,Vert.x等。SDKMAN是用Bash編寫的免費,輕量級開源工具。
 

安裝SDKMAN
SDKMAN支援所有主要Unix作業系統,並且可以輕鬆地將其安裝在所有基於Unix的系統上。而且,它支援Bash和Zsh shell。

curl -s "https://get.sdkman.io" | bash


然後,按照螢幕上的說明完成安裝。
我們可能需要安裝zip和unzip軟體包才能完成安裝過程。
接下來,開啟一個新終端或執行:

source "$HOME/.sdkman/bin/sdkman-init.sh"


最後,執行以下命令以確保安裝正常。如果一切順利,則應顯示版本:

$ sdk version
SDKMAN 5.8.5+522


要進行更多自定義,請參考SDKMAN上的安裝指南
 

列出所有SDK

$ sdk list


list命令顯示所有可用的SDK,由唯一的名稱,描述,官方網站,並在安裝命令中標識:

=====================================================
Available Candidates
=====================================================
q-quit                                  /-search down
j-down                                  ?-search up
k-up                                    h-help
-----------------------------------------------------
Java (11.0.7.hs-adpt)                https://zulu.org
...
                                   $ sdk install java
-----------------------------------------------------
Maven (3.6.3)                https://maven.apache.org
...
                                  $ sdk install maven
-----------------------------------------------------
Spring Boot (2.3.1.RELEASE)          http://spring.io
...
                             $ sdk install springboot
------------------------------------------------------
...


此列表中的指定版本表示每個SDK的穩定版本或LTS版本。

 

安裝和管理Java版本
要列出可用的Java版本,請使用list命令。結果是按供應商分組並按版本排序的條目表:

$ sdk list java
===================================================================
Available Java Versions
===================================================================
Vendor       | Use | Version | Dist    | Status | Identifier
-------------------------------------------------------------------
AdoptOpenJDK |     | 14.0.1  | adpt    |        | 14.0.1.j9-adpt
...
Amazon       |     | 11.0.8  | amzn    |        | 11.0.8-amzn
...
Azul Zulu    |     | 14.0.2  | zulu    |        | 14.0.2-zulu
...
BellSoft     |     | 14.0.2  | librca  |        | 14.0.2.fx-librca
...
GraalVM      |     | 20.1.0  | grl     |        | 20.1.0.r11-grl
...
Java.net     |     | 16.ea   | open    |        | 16.ea.6-open
...
SAP          |     | 14.0.2  | sapmchn |        | 14.0.2-sapmchn


假設我們要從Azul Zulu安裝最新版本的Java 14。因此,我們複製其識別符號(即表的版本),並將其作為引數新增到install命令中:

$ sdk install java 14.0.2-zulu
Downloading: java 14.0.2-zulu
In progress...
########### 100.0%
Repackaging Java 14.0.2-zulu...
Done repackaging...
Installing: java 14.0.2-zulu
Done installing!
Setting java 14.0.2-zulu as default.


SDKMAN!將下載此版本並將其解壓縮到我們計算機上的目錄中。
而且,它將更新環境變數,以便我們可以在終端中立即使用Java。
我們可以使用list命令來驗證任何版本的狀態和使用情況。例如現在已安裝並使用版本14.0.1:

$ sdk list java
=================================================================
Available Java Versions
=================================================================
 Vendor    | Use | Version | Dist    | Status    | Identifier
-----------------------------------------------------------------
 ...
 Azul Zulu | >>> | 14.0.1  | adpt    | [b]installed [/b]| 14.0.1.j9-adpt
 ...


另外,可以透過相同的命令但透過指定二進位制檔案的路徑作為附加引數從計算機上安裝Java或任何自定義版本:

$ sdk install java custom-8 ~/Downloads/my-company-jdk-custom-8


 

在版本之間切換
在兩個版本之間暫時切換:

$ sdk use java 14.0.1.j9-adpt


永久地切換版本:

$ sdk default java 14.0.1.j9-adpt


要刪除已安裝的版本,請使用目標版本執行解除安裝命令:

$ sdk uninstall java 14.0.1.j9-adpt


檢查Java的當前版本,我們執行:

$ sdk current java
Using java version 14.0.2-zulu



$ java -version



$ sdk current
Using:
java: 14.0.2-zulu
gradle: 6.2.2


 

在IDE中用SDKMAN
已安裝的SDK儲存在SDKMAN中!該目錄預設為〜/ .sdkman / candidates。
例如,不同版本的Java也將在〜/ .sdkman / candidates / java /目錄下提供,並且子目錄以這些版本命名:

$ ls -al ~/.sdkman/candidates/java/
total 0
drwxrwxrwx 1 user user 12 Jul 25 20:00 .
drwxrwxrwx 1 user user 12 Jul 25 20:00 ..
drwxrwxr-x 1 user user 12 Jul 25 20:00 14.0.2-zulu
lrwxrwxrwx 1 user user 14 Jul 25 20:00 current -> 14.0.2-zulu


IntelliJ IDEA:
在IntelliJ IDEA中,開啟“專案結構”,然後開啟“專案設定”。在專案配置中,我們可以透過從“ Project SDK”部分中選擇“ New…”來新增新的Java版本。
我們還可以在“構建工具”部分中定義要使用的Java,Gradle或Maven版本。


 

相關文章