Mac 切换 Shell 环境默认 java -version 版本

557 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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 自己维护。

![在这里插入图片描述](img-blog.csdnimg.cn/2f32b2d882b… =700x)

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 版本了。