Mac和Linux多版本JDK配置
随着Java版本的增多,在一台机器上管理多个Java版本成为了一个常见的需求。
在 Linux 或 macOS 上管理多个 Java 版本的主流工具有以下三种:
✅ 1. SDKMAN!(推荐)
特点:
- 支持多版本 Java 安装、切换;
- 也支持其他 JVM 工具如 Gradle、Maven、Kotlin;
- 命令简单,使用便捷;
- 支持全局/项目级设置;
安装:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
设置 JAVA_HOME:
编辑 ~/.bashrc 或 ~/.zshrc 添加以下内容:
export JAVA_HOME="$HOME/.sdkman/candidates/java/current"
export PATH="$JAVA_HOME/bin:$PATH"
其中 current
是 SDKMAN 创建的软链接,指向当前默认版本。
⚠️ 如果你用
sdk use java xxx
,它也会更新current
链接。
常用命令:
# 查看可用的 Java 版本
sdk list java
# 安装某个版本
sdk install java 17.0.8-tem
# 切换默认版本
sdk default java 17.0.8-tem
# 当前会话中使用某个版本
sdk use java 11.0.20-tem
# 查看当前使用的版本
sdk current java
✅ 2. jEnv
特点:
- 类似于 pyenv;
- 更轻量,不负责安装 Java,只负责版本切换和环境管理;
- 支持 global / local / shell 三种作用域;
安装:
brew install jenv # macOS
# 或 git clone 到 ~/.jenv
使用:
# 添加已安装的 Java 版本
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
# 设置全局 Java 版本
jenv global 17
# 当前 shell 使用某个版本
jenv shell 11
# 检查当前使用的版本
jenv versions
注意:你需要手动安装 Java(例如用 brew install openjdk@17
)。
✅ 3. Homebrew + 手动配置(macOS 上)
如果你只用 macOS,也可以用 brew
安装多个版本:
brew install openjdk@11
brew install openjdk@17
然后通过 shell 脚本配置环境变量进行切换:
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
但这种方式相对原始,适合对系统熟悉的用户。
🔚 总结推荐
工具 | 管理方式 | 是否自动安装 JDK | 项目级切换 | 推荐指数 |
---|---|---|---|---|
SDKMAN! | 安装 + 管理 | ✅ 是 | ✅ 支持 | ⭐⭐⭐⭐⭐ |
jEnv | 管理已安装 JDK | ❌ 否 | ✅ 支持 | ⭐⭐⭐⭐ |
Homebrew | 安装 + 手动切换 | ✅ 是 | ❌ 不便捷 | ⭐⭐ |