一、簡介
- 比較常用的
Java JDK
版本管理工具有JEnv
、SDKMAN
,而Jabba
是一個比較新的工具,它是跨平臺的Java
版本管理工具,它是受Node.js
的nvm
啟發(fā),所以Jabba
跟nvm
的使用方式幾乎一致。
二、區(qū)別
-
JEnv
:- 地址:https://github.com/jenv/jenv
- 作者:
Gildas Cuisinier
- 開發(fā)語言:Shell
特點:
-
JEnv
是一個簡單而強大的命令行工具,用于在不同的Java
版本之間進行切換。 -
JEnv
可以管理全局和項目特定的Java
版本,并且可以在不同的項目之間切換。 -
JEnv
不能直接安裝JDK
,需要用戶自行安裝JDK
版本,并將其添加到JEnv
的管理列表中。 -
JEnv
支持跨平臺(Mac、Linux、Windows
)。
-
Jabba
:- 地址:https://github.com/shyiko/jabba
- 作者:
Oleg Shyiko
- 開發(fā)語言:Go
特點:
-
Jabba
是一個用于安裝和管理不同Java
版本的命令行工具。 -
Jabba
可以輕松地安裝和管理多個JDK
版本,并且可以在不同項目之間進行切換。 -
Jabba
提供了簡單易用的命令行接口來安裝、卸載和切換JDK
版本。 -
Jabba
支持跨平臺(Mac、Linux、Windows
)。
-
SDKMAN
:- 地址:https://github.com/sdkman/sdkman-cli
- 作者:Marcin Erdmann
- 開發(fā)語言:Groovy
特點:
-
SDKMAN
(Software Development Kit Manager
)是一個通用的軟件開發(fā)工具包管理器,不僅僅限于Java
。 -
SDKMAN
可以用來安裝和管理多種不同的開發(fā)工具,包括JDK
和其他構(gòu)建工具(如Gradle
和Maven
)。 -
SDKMAN
提供了一個簡單的命令行界面,使用戶能夠輕松地安裝、卸載和切換不同的開發(fā)工具。 -
SDKMAN
支持跨平臺(Mac、Linux、Windows
)。
三、安裝
-
Mac
可以通過HomeBrew
安裝的可以看下 HomeBrew 安裝詳細流程。 -
所有版本的安裝這里都有:Java JDK使用 SDKMAN、JEnv 和 Jabba 安裝配置及版本切換,步驟挺簡單的,或者可以直接按照上面區(qū)別中的
Github
地址直接進去看官方文檔安裝,基本一致也不繁瑣。JEnv
算是絕對的輕量級,可以優(yōu)先考慮,只是需要手動安裝版本,但是也挺簡單的,而且本地版本一般也不會安裝很多,博主選的這個。 -
版本是否切換成功,可以查看下版本
$ java -version
-
卸載
JDK
:Mac 卸載非 JDK 管理工具安裝的 Java JDK。
四、SDKMAN 使用細節(jié)
-
sdkman 官網(wǎng)中有安裝與卸載教程。
-
常用指令
# 查看 sdkman 版本 $ sdk version # 查看 sdkman 版本 $ sdk current # 查看 sdkman 使用的當前 java 版本 $ sdk current java # 更新本地 sdkman 緩存 $ sdk update # 強制升級 sdkman $ sdk selfupdate force # 列出可用的 java 版本,還可以列出別的平臺 $ sdk list maven $ sdk list java # 查看安裝地址 $ sdk home java 11.0.16-zulu # 安裝指定版本 $ sdk install java 11.0.16-zulu # 卸載指定版本 $ sdk uninstall java 11.0.16-zulu # 將制定版本設(shè)為默認(全局) $ sdk default java 11.0.16-zulu # 配置本地的版本(臨時,本地目錄) $ sdk use java 11.0.16-zulu
五、JEnv 使用細節(jié)
-
安裝好后,可以到 AdoptopenJDK 或 Oracle 下載需要的版本進行安裝,AdoptopenJDK 可以下載到比較老的版本,Oracle 只能下最新的版本。
-
查看本地所有
JDK
版本路徑$ /usr/libexec/java_home -V
-
常用指令
# 診斷 jenv 是否配置成功 $ jenv doctor # 添加一個 JDK 版本到 jenv 管理 $ jenv add JDK路徑 $ jenv add /usr/local/Cellar/openjdk@11/11.0.17/libexec/openjdk.jdk/Contents/Home $ jenv add /usr/local/Cellar/openjdk@8/1.8.0+352/libexec/openjdk.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home # 支持別名 $ jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home oracle64-1.6.0.39 added # 查看管理的 JDK 版本 $ jenv versions # 將制定版本設(shè)為默認(全局) $ jenv global oracle64-1.6.0.39 # 配置本地的版本(臨時,本地目錄) $ jenv local oracle64-1.6.0.39 # shell 版本設(shè)置,給解釋器(也就是這種類型的命令行窗口)設(shè)置使用指定的版本 $ jenv shell oracle64-1.6.0.39
-
切換版本后,可能還需要執(zhí)行一行代碼才會生效,如果切換版本生效了則不需要執(zhí)行文章來源:http://www.zghlxwxcb.cn/news/detail-840034.html
# 看版本對不對,不對則同步下環(huán)境配置 $ java -version # 不對則執(zhí)行一下這行,在輸出一下版本 $ source ~/.zshrc
六、Jabba 使用細節(jié)
-
常用指令文章來源地址http://www.zghlxwxcb.cn/news/detail-840034.html
# 查看遠程可以安裝版本 $ jabba ls-remote # 安裝 $ jabba install 1.8 # 卸載 $ jabba uninstall 1.8 # 查看本地已安裝版本 $ jabba ls # 將制定版本設(shè)為默認(全局) $ jabba alias default oracle64-1.6.0.39 # 配置本地的版本(臨時,本地目錄) $ jenv use oracle64-1.6.0.39 # 添加本地 JDK $ jabba link 別名@版本 本地JDK路徑 $ jabba link system@1.8 M:\GreenSoft\Java\jdk1.8.0_171 # 過濾搜索版本 $ jabba ls-remote zulu@~1.8.60 $ jabba ls-remote "* @> = 1.6.45 <1.9"-- latest = minor # 通過指定 url 進行安裝,支持: zip (since 0.3.0), tgz, tgx (since 0.10.0), dmg, bin, exe $ jabba install 1.8.0-custom=tgz+http://example.com/distribution.tar.gz $ jabba install 1.8.0-custom=tgx+http://example.com/distribution.tar.xz $ jabba install 1.8.0-custom=zip+file:///opt/distribution.zip
到了這里,關(guān)于Java 的 JDK 多版本管理與常用命令(JEnv、SDKMAN、Jabba)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!