一、简介
- 比较常用的
Java JDK
版本管理工具有JEnv
、SDKMAN
,而Jabba
是一个比较新的工具,它是跨平台的Java
版本管理工具,它是受Node.js
的nvm
启发,所以Jabba
跟nvm
的使用方式几乎一致。
二、区别
-
JEnv
:- 地址:https://github.com/jenv/jenv
- 作者:
Gildas Cuisinier
- 开发语言:Shell
特点:
-
JEnv
是一个简单而强大的命令行工具,用于在不同的Java
版本之间进行切换。 -
JEnv
可以管理全局和项目特定的Java
版本,并且可以在不同的项目之间切换。 -
JEnv
不能直接安装JDK
,需要用户自行安装JDK
版本,并将其添加到JEnv
的管理列表中。 -
JEnv
支持跨平台(Mac、Linux、Windows
)。
-
Jabba
:- 地址:https://github.com/shyiko/jabba
- 作者:
Oleg Shyiko
- 开发语言:Go
特点:
-
Jabba
是一个用于安装和管理不同Java
版本的命令行工具。 -
Jabba
可以轻松地安装和管理多个JDK
版本,并且可以在不同项目之间进行切换。 -
Jabba
提供了简单易用的命令行接口来安装、卸载和切换JDK
版本。 -
Jabba
支持跨平台(Mac、Linux、Windows
)。
-
SDKMAN
:- 地址:https://github.com/sdkman/sdkman-cli
- 作者:Marcin Erdmann
- 开发语言:Groovy
特点:
-
SDKMAN
(Software Development Kit Manager
)是一个通用的软件开发工具包管理器,不仅仅限于Java
。 -
SDKMAN
可以用来安装和管理多种不同的开发工具,包括JDK
和其他构建工具(如Gradle
和Maven
)。 -
SDKMAN
提供了一个简单的命令行界面,使用户能够轻松地安装、卸载和切换不同的开发工具。 -
SDKMAN
支持跨平台(Mac、Linux、Windows
)。
三、安装
-
Mac
可以通过HomeBrew
安装的可以看下 HomeBrew 安装详细流程。 -
所有版本的安装这里都有:Java JDK使用 SDKMAN、JEnv 和 Jabba 安装配置及版本切换,步骤挺简单的,或者可以直接按照上面区别中的
Github
地址直接进去看官方文档安装,基本一致也不繁琐。JEnv
算是绝对的轻量级,可以优先考虑,只是需要手动安装版本,但是也挺简单的,而且本地版本一般也不会安装很多,博主选的这个。 -
版本是否切换成功,可以查看下版本
$ java -version
-
卸载
JDK
:Mac 卸载非 JDK 管理工具安装的 Java JDK。
四、SDKMAN 使用细节
-
sdkman 官网中有安装与卸载教程。
-
常用指令
# 查看 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 # 将制定版本设为默认(全局) $ sdk default java 11.0.16-zulu # 配置本地的版本(临时,本地目录) $ sdk use java 11.0.16-zulu
五、JEnv 使用细节
-
安装好后,可以到 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 # 将制定版本设为默认(全局) $ jenv global oracle64-1.6.0.39 # 配置本地的版本(临时,本地目录) $ jenv local oracle64-1.6.0.39 # shell 版本设置,给解释器(也就是这种类型的命令行窗口)设置使用指定的版本 $ jenv shell oracle64-1.6.0.39
-
切换版本后,可能还需要执行一行代码才会生效,如果切换版本生效了则不需要执行文章来源:https://www.toymoban.com/news/detail-840034.html
# 看版本对不对,不对则同步下环境配置 $ java -version # 不对则执行一下这行,在输出一下版本 $ source ~/.zshrc
六、Jabba 使用细节
-
常用指令文章来源地址https://www.toymoban.com/news/detail-840034.html
# 查看远程可以安装版本 $ jabba ls-remote # 安装 $ jabba install 1.8 # 卸载 $ jabba uninstall 1.8 # 查看本地已安装版本 $ jabba ls # 将制定版本设为默认(全局) $ 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
到了这里,关于Java 的 JDK 多版本管理与常用命令(JEnv、SDKMAN、Jabba)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!