mac 的JDK版本切换
在 Mac 上实现 JDK 8 和 JDK 11 之间的切换,可以使用 export JAVA_HOME
命令手动切换,或者使用 jEnv
工具来管理多个 Java 版本。
🚀 方法 1:手动切换(推荐)
1.1 确保已安装多个 JDK
使用 Homebrew 安装 JDK 8 和 JDK 11:
brew install openjdk@8
brew install openjdk@11
安装完成后,JDK 8 和 11 分别存放在:
- JDK 8 路径:
/opt/homebrew/opt/openjdk@8
- JDK 11 路径:
/opt/homebrew/opt/openjdk@11
1.2 查看 Mac 上已安装的 JDK
/usr/libexec/java_home -V
示例输出:
Matching Java Virtual Machines (2):
11.0.20 (x86_64) "Oracle Corporation" - "/Library/Java/JavaVirtualMachines/jdk-11.0.20.jdk/Contents/Home"
1.8.0_371 (x86_64) "AdoptOpenJDK" - "/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home"
1.3 切换 JDK
👉 切换到 JDK 8
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
👉 切换到 JDK 11
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
👉 验证当前 JDK 版本
java -version
示例输出:
openjdk version "1.8.0_371"
1.4 让 JDK 切换生效
如果你希望 每次打开终端时自动切换 JDK,可以将 export JAVA_HOME
语句添加到 ~/.zshrc
或 ~/.bashrc
中。
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 11)' >> ~/.zshrc
source ~/.zshrc
或者:
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)' >> ~/.zshrc
source ~/.zshrc
这样,每次打开终端时都会使用指定的 JDK 版本。
🚀 方法 2:使用 jEnv
(自动管理多个 JDK 版本)
如果你经常需要在多个 JDK 之间切换,建议使用 jEnv
,它可以在不同项目中自动切换 JDK 版本。
2.1 安装 jEnv
brew install jenv
2.2 配置 jEnv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc
2.3 添加 JDK 版本
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-11.0.20.jdk/Contents/Home
2.4 查看已添加的 JDK
jenv versions
示例输出:
1.8
11
* system (set by /Users/your_user/.jenv/version)
2.5 切换 JDK
全局切换(影响所有终端)
jenv global 11
当前终端切换
jenv shell 1.8
当前项目使用指定 JDK
jenv local 11
这样,每次进入该项目目录时,都会自动使用 JDK 11。
🎯 总结
方法 | 适合场景 | 命令示例 |
---|---|---|
手动切换 JDK | 只需要偶尔切换 | export JAVA_HOME=$(/usr/libexec/java_home -v 11) |
jEnv 工具 | 经常在多个 JDK 之间切换 | jenv global 11 / jenv shell 8 |
如果你只是偶尔切换 JDK,手动切换即可。
如果你要在不同项目中自动切换 JDK,推荐使用 jEnv
!🚀