多版本SDK並行管理工具:SDKMAN指南 - Baeldung
隨著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版本。
相關文章
- Axon框架指南 - Baeldung框架
- 用sdkman管理多個jdk切換JDK
- Python多版本管理工具Python
- Windows上的多jdk版本管理工具WindowsJDK
- 多個 .NET Core SDK 版本之間進行切換 global.jsonJSON
- SOLID原則的堅實指南| BaeldungSolid
- Mysql為什麼多個大版本並行釋出的個人理解MySql並行
- 使用async-profiler進行JVM記憶體效能微調的指南 | BaeldungJVM記憶體
- 實現dnmp中多站點多版本php並存PHP
- Android技術分享| 利用Kotlin協程,多工並行,測試RTM SDK效能AndroidKotlin並行
- 開發了一個 deno 多版本管理工具:dvm
- 26、多執行緒與並行執行緒並行
- PyPy 打算推出無 GIL 版本,或和雙版本並行發行並行
- JavaScript SDK 設計指南JavaScript
- 適用於 deno 的多版本管理工具 dvm 釋出
- Android SDK版本和ADT版本Android
- PHP多程式並行執行php指令碼PHP並行指令碼
- 並行版本控制的好幫手--WinMerge並行
- RVM ruby版本管理工具
- JavaScript sdk(jssdk)設計指南JavaScriptJS
- 影片SDK開發,多平臺SDK快速接入
- Node.js 多執行緒完全指南Node.js執行緒
- 多流向演算法GPU並行化演算法GPU並行
- Python併發與並行的新手指南Python並行
- mac管理flutter和dart sdk版本MacFlutterDart
- java多執行緒詳解(併發,並行,同步)Java執行緒並行
- 開多個JVM進行並行處理是否可行?JVM並行
- 多執行緒並行執行,然後彙總結果執行緒並行
- 在一臺機器上安裝並使用多版本的 Go ?Go
- PyTorch中的多程序並行處理PyTorch並行
- 在Docker容器內執行 vi 編輯器 | BaeldungDocker
- 從偽並行的 Python 多執行緒說起並行Python執行緒
- Java多執行緒--併發和並行的區別Java執行緒並行
- C#並行,多執行緒程式設計並行集合和PLINQ的例項講解並行執行緒程式設計
- 版本管理工具之Git 和SVNGit
- 一種支援多種並行環境的柵格地理計算並行運算元並行
- InnoDB多版本
- Pytorch使用資料並行,單機多卡PyTorch並行