Mac 安装及使用sdkman指南

什么是SDKMA?

SDKMAN(Software Development Kit Manager)是一款专为JVM生态设计的全功能SDK管理工具,通过命令行界面为开发者提供极简的SDK版本管理方案。作为Java开发者工具链中的核心组件,它能高效管理Java、Scala、Kotlin等JVM语言环境及Maven、Gradle等构建工具的版本控制

特点

🔧 统一管理:集中管控50+个JVM相关SDK(涵盖JDK/Gradle/Scala/Spring Boot等)

⚡ 智能安装:自动化完成下载、安装、环境变量配置全流程

🔄 版本热切换:支持多版本并行与即时环境切换(如JDK8←→17秒级切换)

📱 全平台兼容:原生支持Linux/macOS,通过WSL完美适配Windows

💻 极简CLI:直观命令设计(sdk install/use/list),降低工具学习曲线

安装 SDKMAN!

在终端中执行以下命令来安装 SDKMAN!: 安装完成后,按照提示重启终端或者执行以下命令使配置生效:

复制代码
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

卸载 SDKMAN!

若要卸载 SDKMAN!,可以执行以下命令:

复制代码
rm -rf "$HOME/.sdkman"

然后手动从你的 shell 配置文件(如 .bashrc.zshrc)中移除 SDKMAN! 的初始化脚本引用。

基本使用命令

列出可用的 SDK

使用 sdk list 命令可以列出 SDKMAN! 支持的所有 SDK:

复制代码
sdk list

若要查看特定 SDK 的可用版本,可在 list 后面加上 SDK 名称,例如查看 Java 的可用版本:

复制代码
sdk list java

安装 SDK

使用 sdk install 命令来安装指定的 SDK 版本,例如安装 Java 11:

复制代码
sdk install java 11.0.23-amzn

这里的 11.0.12-open 是 Java 的一个具体版本标识,你可以根据 sdk list java 列出的版本信息选择合适的版本进行安装。

卸载 SDK

使用 sdk uninstall 命令来卸载已安装的 SDK 版本,例如卸载之前安装的 Java 11:

复制代码
sdk uninstall java 11.0.23-amzn

使用特定版本的 SDK

使用 sdk use 命令可以临时切换到指定版本的 SDK,例如临时使用 Java 17:

复制代码
sdk use java 17.0.14-amzn

若要永久设置某个版本为默认版本,使用 sdk default 命令,例如将 Java 17 设置为默认版本:

复制代码
sdk default java 17.0.14-amzn

查看当前使用的 SDK 版本

使用 sdk current 命令可以查看当前正在使用的 SDK 版本,例如查看当前使用的 Java 版本:

复制代码
sdk current java

更新 SDKMAN!

使用 sdk selfupdate 命令可以更新 SDKMAN! 自身到最新版本:

复制代码
sdk selfupdate

检查 SDK 更新

使用 sdk update 命令可以检查已安装的 SDK 是否有可用的更新:

复制代码
sdk update

帮助命令

使用 sdk help 命令可以查看 SDKMAN! 的帮助信息,了解所有可用的命令及其用法:

复制代码
sdk help
相关推荐
格子软件7 小时前
2026年GEO优化系统源码解构:核心状态机与高并发流控深度剖析
java·vue.js·spring boot·vue·geo
weixin199701080167 小时前
[特殊字符]《京东订单API(jd.order.detail.get)对接ERP:企业认证+OAuth授权避坑指南》(附Python源码)
java·数据库·python
pW3g3lLuu8 小时前
在 VS Code 里直接改 JAR,我复刻了JarEditor
java·pycharm·jar
aaaameliaaa8 小时前
计算斐波那契数(递归、迭代)(1,1,2,3,5.....)
c语言·开发语言·笔记·算法·排序算法
Tim_108 小时前
【C++】009、extern关键字
java·开发语言
ShiXZ2138 小时前
PDF-OCR文件识别篇(七):数据入库
java·pdf·json·ocr·springboot
rebibabo9 小时前
Java基础(番外) | Kafka 入门:分区、副本与消费者组原理
java·分布式·kafka·学习笔记·副本·分区·异步日志
Flittly9 小时前
【AgentScope Java新手村系列】(17)长期记忆系统
java·spring boot·spring
wei1986219 小时前
.net添加web引用和添加服务引用有什么区别?
java·前端·.net
小c君tt9 小时前
linux学习笔记1
linux·笔记·学习