多版本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框架
- Python多版本管理工具Python
- 用sdkman管理多個jdk切換JDK
- 多個 .NET Core SDK 版本之間進行切換 global.jsonJSON
- Windows上的多jdk版本管理工具WindowsJDK
- SOLID原則的堅實指南| BaeldungSolid
- Android技術分享| 利用Kotlin協程,多工並行,測試RTM SDK效能AndroidKotlin並行
- 實現dnmp中多站點多版本php並存PHP
- 使用async-profiler進行JVM記憶體效能微調的指南 | BaeldungJVM記憶體
- Mysql為什麼多個大版本並行釋出的個人理解MySql並行
- 開發了一個 deno 多版本管理工具:dvm
- 26、多執行緒與並行執行緒並行
- 適用於 deno 的多版本管理工具 dvm 釋出
- Node.js 多執行緒完全指南Node.js執行緒
- PyTorch中的多程序並行處理PyTorch並行
- Pytorch:單卡多程式並行訓練PyTorch並行
- mac管理flutter和dart sdk版本MacFlutterDart
- 影片SDK開發,多平臺SDK快速接入
- 從偽並行的 Python 多執行緒說起並行Python執行緒
- 多執行緒並行執行,然後彙總結果執行緒並行
- 在一臺機器上安裝並使用多版本的 Go ?Go
- 【python隨筆】之【多程式並行統計多個cvs檔案行數】Python並行
- [nodejs] nodejs版本管理工具:nvmNodeJS
- C#並行,多執行緒程式設計並行集合和PLINQ的例項講解並行執行緒程式設計
- Pytorch使用資料並行,單機多卡PyTorch並行
- Android Sdk版本、Support包版本及常用框架最新版本彙總Android框架
- 如何在Android studio中更新sdk版本和build-tools版本AndroidUI
- Java執行緒池newCachedThreadPool()與newFixedThreadPool()區別 | BaeldungJava執行緒thread
- 在Docker容器內執行 vi 編輯器 | BaeldungDocker
- 資料庫版本管理工具Liquibase資料庫UI
- 版本管理工具之Git 和SVNGit
- 第19節 從庫MTS多執行緒並行回放(一)執行緒並行
- 第20節 從庫MTS多執行緒並行回放(二)執行緒並行
- 二十:從庫MTS多執行緒並行回放(二)(筆記)執行緒並行筆記
- 十九:從庫MTS多執行緒並行回放(一)(筆記)執行緒並行筆記
- C#多執行緒開發-任務並行庫04C#執行緒並行
- Java多執行緒並行處理任務的實現Java執行緒並行
- 多專案並行時人員怎麼分配並行