MacOS 和 Linux 使用 SDKMAN 管理 Java 工具链

Handsome
2025-06-19
点 赞
2
热 度
52
评 论
1

Java 多版本环境的管理,一直是开发过程中容易踩坑的环节。JDK 8、JDK 11、JDK 17、JDK 21,项目环境各不相同,频繁切换 JDK,手动改 JAVA_HOME 太麻烦了。

这时候,如果你用的是 macOS 或 Linux 系统,请毫不费力地用上它:

SDKMAN!—— Java 工具链版本管理的利器

这篇文章会一步步教你如何使用 SDKMAN 来安装、切换、维护多个版本的 JDK,并顺序说说 Maven、Gradle、Kotlin 等也能一并管理。

感谢 johnniang 提供此方案思路参考。

什么是 SDKMAN?

SDKMAN 是一个命令行工具,用来安装和管理 Java 世界的各种开发工具,支持:

  • 安装多个版本的 JDK

  • 切换默认 JDK,不用手动修改环境变量

  • 安装和管理 Maven、Gradle、Kotlin、SBT、GraalVM 等等

  • 跨 Linux/macOS 平台通用,配置文件清晰可控

📂 官网地址:https://sdkman.io

📦 系统支持情况

系统

支持情况

推荐程度

macOS (Intel/Apple M系列)

✅ 完全支持

⭐⭐⭐⭐⭐

Linux (Ubuntu, Debian, CentOS, Rocky...)

✅ 完全支持

⭐⭐⭐⭐⭐

Windows(CMD/PowerShell)

❌ 不支持

🚫

Windows(Git Bash/WSL)

⭕ 可变通

⭐⭐(适合进阶用户)


🛠️ 准备工作

在开始之前,请确认你系统中已安装以下基础工具:

工具

检查方式

无法执行时安装方法

curl

curl --version

sudo apt install curl / brew install curl

zipunzip

zip --version

sudo apt install zip unzip / brew install unzip

git

git --version

sudo apt install git / brew install git

macOS 推荐先执行:

xcode-select --install

🚀 安装 SDKMAN

在 macOS 和 Linux 上的通用命令如下:

curl -s "https://get.sdkman.io" | bash

运行完成后,终端会提示你执行一条初始化命令:

source "$HOME/.sdkman/bin/sdkman-init.sh"

可以把上面那句加到你的 .bashrc.zshrc.profile 文件中,实现开机自动加载。


✅ 验证安装是否成功

执行:

sdk version

如果能看到类似:

SDKMAN 5.16.0+123

说明安装成功。


☕ 安装并管理 JDK(Java)

查看所有可选的 JDK 版本:

sdk list java

你会看到一长串版本,满足:

  • Temurin、Zulu、Oracle、GraalVM


安装指定版本(例如 JDK 8 和 JDK 21):

sdk install java 8.0.392-zulu
sdk install java 21.0.2-tem

安装速度取决于你的网络环境,部分版本较大。


切换默认版本(全局生效):

sdk default java 21.0.2-tem

表示以后新打开的终端窗口都默认用 JDK 21。


临时切换(只在当前终端有效):

sdk use java 8.0.392-zulu

执行完这个命令后,再跑 java -version 就能看到你刚选的版本。


卸载某个版本:

sdk uninstall java 8.0.392-zulu

📂 JAVA_HOME 自动设置说明

使用 SDKMAN 安装 JDK 后,它会自动配置 JAVA_HOME 到:

$HOME/.sdkman/candidates/java/current

你可以验证:

echo $JAVA_HOME

一般不用你手动写 export JAVA_HOME=...,除非你想显式声明。


🛠️ 除了 JDK,还能装什么?

SDKMAN 不只是 JDK 管理器,还能帮你管理以下工具:

sdk install maven
sdk install gradle
sdk install kotlin
sdk install sbt
sdk install micronaut

版本切换命令格式也一样:

sdk use gradle 7.6
sdk default maven 3.9.5

✅ 常用命令总结

命令

作用

sdk list java

查看所有可用 JDK

sdk install java <版本>

安装指定版本

sdk use java <版本>

临时切换版本

sdk default java <版本>

设置全局默认版本

sdk uninstall java <版本>

卸载 JDK

sdk current java

查看当前正在使用的版本


❓常见问题 Q&A

1. SDKMAN 安装失败了?

  • 检查网络(可能 curl 超时)

  • 有时 .sdkman 目录被误删,重新安装即可

  • 检查是否执行了 source "$HOME/.sdkman/bin/sdkman-init.sh"


2. 我能同时装 8、11、17、21 四个版本吗?

当然可以,SDKMAN 设计之初就是为了支持多个版本并行的。


3. SDKMAN 能用在 Windows 吗?

不能原生使用 CMD / PowerShell,但你可以:

  • 在 Windows 安装 WSL(Windows 子系统 Linux)

  • 或使用 Git Bash + 手动设置 JAVA_HOME(建议初学者直接使用 .msi 安装包)

  • ps:等我出差回去用win折腾一下试试


🧾 总结

在 macOS 和 Linux 下,统一使用 SDKMAN 管理 Java 工具链,是目前最省事、最稳定、最推荐的方案之一。

你不再需要:

  • 手动找路径改环境变量

  • 担心系统里多个版本冲突

  • 为了换个 JDK 重启电脑

只需几条命令,安装、切换、验证一气呵成。


📎 参考链接



心若有所向往,何惧道阻且长

Handsome

infp 调停者

站长

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

目录

欢迎来到Handsome的站点,为您导航全站动态

32 文章数
4 分类数
71 评论数
28标签数

访问统计

51统计Logo