sdkman管理jdk版本

官方网站:https://sdkman.io/

安装 sdkman

下载并安装:

# 下载并安装
curl -s "https://get.sdkman.io" | bash

接下来输入 

# 可选操作:生效环境变量,不执行下面的命令也行,新开一个终端即可生效环境变量
source "$HOME/.sdkman/bin/sdkman-init.sh"

安装成功后,查看 sdk 版本:

 sdk version

多版本 JDK

为了研究源码方便,有时需要安装其他版本的 JDK,但是又不想卸载电脑默认的 JDK 版本,此时使用 sdkman,查询 JDK 版本:

sdk list java

或者

sdk ls java

通过sdk list java命令,查看支持的JDK时,可以看到最后一列Identifier,这一列内容是我们安装的时候要使用的

安装指定版本的jdk,例如JDK21:

sdk install java 21.0.2-open

安装成功后 sdkman 会自动配置 JAVA_HOME 和 PATH 等环境变量,可以通过 Java -version 命令验证。

sdkman 会重写之前配置的 JAVA_HOME。 

将 sdkman 指向已安装 Java 版本

如果在你安装 SDKMan 之前本地电脑已经安装了 JDK 版本,默认是无法识别到的,那么你需要进行以下配置才能让 SDKMan 识别已安装的版本,首先,第一步你要先找到你的 Java 安装目录,我本地 Mac 的安装目录是 /opt/homebrew/Cellar/openjdk@11/11.0.16.1_1/bin,然后使用命令 ln -s 来为 Java 安装目录建立符号链接。

ln  -s  /opt/homebrew/Cellar/openjdk@11/11.0.16.1_1/bin   ~/.sdkman/candidates/java/openjdk@11/11.0.16.1_1/bin

sdkman 的使用

命令说明
sdk help查看命令帮助
sdk update更新 sdkman
sdk default java 11.0.7.hs-adpt设置默认的 JDK 版本
sdk install [version]安装指定版本
sdk uninstall [version]卸载指定版本
sdk use切换为指定版本。

查看当前使用的版本 

sdk current java

#查看所有本地包的当前版本

$ sdk current

 sdk版本升级

sdk upgrade springboot

# 本地所有sdk全部升级

sdk upgrade

SDKMAN!版本升级

sdk selfupdate

# 强制重新安装

sdk selfupdate force

 默认jdk提示无法删除

强制删除

sdk uninstall java 21.0.2-open --force

 常用命令

# 安装最新稳定版本的java sdk
$ sdk install java

# 安装指定版本的java sdk
$ sdk install java 11.0.5-open

# 安装指定版本的java sdk至指定的本地目录
$ sdk install java 11.0.5-open /path/to/java

# 卸载已安装的SDK,需要指定版本号
$ sdk uninstall java 11.0.5-open

# 显示所有的SDK
$ sdk list

# 显示所有java sdk版本
$ sdk list java

# 切换指定的版本
$ sdk use java 11.0.5-open

# 将某个版本设置为默认版本(全局生效)
$ sdk default java 11.0.5-open

# 查看安装地址
$ sdk home java 11.0.16-zulu

# 查询已安装的SDK版本
$ sdk current java

# 获取最新的SDK版本通知
$ sdk broadcast

# 开启脱机模式
$ sdk offline enable

# 关闭脱机模式
$ sdk offline disable

# 更新sdkman,若当前已经是最新版本将不执行更新
$ sdk selfupdate

# 更新sdkman,若当前已经是最新版本将重新安装
$ sdk selfupdate force

SDKMAN的配置

SDKMAN还有一些基础配置,其配置文件位于:~/.sdkman/etc/config,一般不太修改。但如果碰到问题,可以在这里开启debug模式等功能。

# make sdkman non-interactive, preferred for CI environments
sdkman_auto_answer=true|false

# check for newer versions and prompt for update
sdkman_selfupdate_feature=true|false

# disables SSL certificate verification
# https://github.com/sdkman/sdkman-cli/issues/327
# HERE BE DRAGONS....
sdkman_insecure_ssl=true|false

# configure curl timeouts
sdkman_curl_connect_timeout=5
sdkman_curl_continue=true
sdkman_curl_max_time=10

# subscribe to the beta channel
sdkman_beta_channel=true|false

# enable verbose debugging
sdkman_debug_mode=true|false

# enable colour mode
sdkman_colour_enable=true|false

# enable automatic env
sdkman_auto_env=true|false

# enable bash or zsh auto-completion
sdkman_auto_complete=true|false

SDKMAN在Homebrew中的安装和使用

$ brew tap sdkman/tap
$ brew install sdkman-cli

成功安装后,将以下行添加到 .bash_profile 的末尾

export SDKMAN_DIR=$(brew --prefix sdkman-cli)/libexec
[[ -s "${SDKMAN_DIR}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR}/bin/sdkman-init.sh"

然后可运行sdk version 查询版本

删除sdkman

(可选)备份然后删除安装

$ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman

从 shell 配置中删除初始化片段。编辑并删除 .bashrc、.bash_profile 和/或 .profile 文件中的初始化片段。如果您使用 ZSH,请将其从 .zshrc 文件中删除。要删除的代码片段如下所示:

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
#这必须位于文件末尾才能让 SDKMAN 工作!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值