本文已参与「新人创作礼」活动,一起开启掘金创作之路。
mac 下的 JDK 版本切换有点奇怪,死活切换不了,不过可以借助三方工具 jenv 来简化。
jenv 为 java 在开发机器上使用的一些重要功能: jenv 允许 java 在版本之间切换。这在开发 Android 应用程序(其工具通常需要 Java 8)与使用 Java 11 等更高版本的服务器应用程序时非常有用。
jenv 工作原理:它设置JAVA_HOME在你的 shell 中,以一种可以全局设置、当前工作目录本地或每个 shell 的方式设置。
开源地址: github.com/jenv/jenv
1、安装 jenv 进行版本管理
brew install jenv
- Bash 执行:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
- zsh 执行:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
jenv 安装完毕。
2、 查看 MAC 上已安装的 JDK 版本
/usr/libexec/java_home -V
java_home 这个命令 mac 内置,mac 自己维护。

3、 将 MAC 上已安装的 JDK 版本加入 jenv 进行管理
将上面获得的 java home 文件目录 add 到 jenv 就 OK。
jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
jenv remove 1.6.0 # 有 add 自然也有 remove
4、 查看 jenv 管理的 JDK
jenv versions
# >> 输出:
system
1.8
1.8.0.333
11
11.0
11.0.15
15
15.0
15.0.2
* corretto64-11.0.15
ibm64-1.8.0.332
openjdk64-15.0.2 (set by /Library/Java/JavaVirtualMachines/.java-version)
openjdk64-18.0.1.1
oracle64-1.8.0.333
* 表示正在使用的版本,通过 jenv version 也能查看当前正在使用的 java 版本。
5、查看 jenv 对 mac 系统当前 java 版本的影响
sudo jenv local openjdk64-15.0.2
6、查看 jenv 对 mac 系统当前 java 版本的影响
java -version
# >> 输出:
# openjdk64-15.0.2 (set by /Library/Java/JavaVirtualMachines/.java-version)
终于切换成功了。经过上面配置,就可以实现自由切换 JDK 版本了。