Mac和Linux多版本JDK配置

java May 19, 2025

随着Java版本的增多,在一台机器上管理多个Java版本成为了一个常见的需求。
在 Linux 或 macOS 上管理多个 Java 版本的主流工具有以下三种:


✅ 1. SDKMAN!(推荐)

官网https://sdkman.io/

特点

  • 支持多版本 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

官网https://www.jenv.be/

特点

  • 类似于 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 安装 + 手动切换 ✅ 是 ❌ 不便捷 ⭐⭐

zzx

a programmer. github: https://github.com/zzxT