macOS Big Sur 如何将默认Java从OpenJDK15切换为Java 8
macOS Big Sur 切换默认Java 8的有效操作步骤
首先梳理当前配置无法生效的核心卡点:
- 系统默认终端使用zsh启动逻辑,不会自动加载
~/.bash_profile内的配置,此前修改bash_profile的操作对当前终端完全不生效 ~/.zshrc中重复写入的export PATH="/usr/local/opt/openjdk/bin:$PATH"将OpenJDK15的可执行路径插入到PATH优先级最高的位置,直接覆盖其他路径下的java命令- 全局JAVA_HOME指向了浏览器插件自带的JavaAppletPlugin路径,没有对齐到你安装的JDK8目录,且临时export的环境变量仅对当前会话有效,重启终端就会失效
具体操作流程
- 第一步:清理zsh配置中的错误PATH条目
打开~/.zshrc配置文件,删除两行重复的export PATH="/usr/local/opt/openjdk/bin:$PATH"内容,不要保留相关条目。 - 第二步:添加持久化的JDK8环境配置
在~/.zshrc文件末尾追加以下两行配置:
由于你已经验证过export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH/usr/libexec/java_home -V可以正常枚举到JDK8的安装路径,该命令会自动锁定1.8版本的安装目录,不会出现路径识别错误。 - 第三步:排查系统级zsh配置的冲突项
依次执行以下命令,检查系统全局配置中是否残留了错误的JAVA_HOME指向:cat /etc/zshenv | grep JAVA_HOMEcat /etc/zprofile | grep JAVA_HOME
如果查到指向/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home的配置项,直接删除对应行,避免全局配置覆盖用户目录的设置。
- 第四步:验证配置生效
执行source ~/.zshrc加载新配置,再依次验证:- 执行
echo $JAVA_HOME,确认输出为/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home - 执行
java -version,确认输出为JDK8对应的版本信息 - 完全关闭当前终端窗口,新开一个终端重复执行版本检查,确认配置不会被重置
- 执行
此前无效操作的原因说明:
- 重命名JDK15的Info.plist操作,已经让系统的java_home枚举工具找不到该JDK,但这个OpenJDK15是通过Homebrew安装的,它的可执行文件直接放在
/usr/local/opt/openjdk/bin路径下,不依赖Info.plist做路径识别,所以之前的操作根本拦不住该路径下的java命令被优先调用- 临时在终端执行的
export JAVA_HOME=...属于会话级临时变量,关闭终端窗口就会自动失效,无法实现持久化配置- 修改
~/.bash_profile的操作,在Big Sur默认zsh终端下,除非手动在zsh配置中引入bash_profile的加载逻辑,否则终端启动时完全不会读取该文件的内容
内容的提问来源于stack exchange,提问作者jack0
相关产品推荐
相关产品推荐

