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
相关推荐
Java小生不才3 小时前
Spring AI文生音
java·人工智能·spring
凯尔萨厮3 小时前
Springboot2.x+Thymeleaf项目创建
java
05候补工程师3 小时前
【ROS 2 具身智能】Gazebo 仿真避坑指南:从“幽灵机器人”到传感器数据流打通
人工智能·经验分享·笔记·ubuntu·机器人
chushiyunen3 小时前
pandas使用笔记、数据清洗、json_normalize
笔记·pandas
fish_xk3 小时前
map和set
java·开发语言
HERR_QQ3 小时前
端到端课程自用 4 规划 基于自规划AR的端到端规划 AI 笔记
人工智能·笔记·自动驾驶·transformer
李崧正3 小时前
Java技术分享:Lambda表达式与函数式编程
java·开发语言·python
老了,不知天命3 小时前
鳶尾花項目JAVA
java·开发语言·机器学习
二哈赛车手4 小时前
新人笔记---实现简易版的rag的bm25检索(利用ES),以及RAG上传时的ES与向量数据库双写
java·数据库·笔记·spring·elasticsearch·ai
winner88814 小时前
从零吃透C++命名空间、std、#include、string、vector
java·开发语言·c++