macOS Monterey安装Java 8 JDK后javac不可用且Java被拦截如何修复
macOS Monterey Java 8 异常问题修复方案
修复系统拦截Java运行问题
macOS的公证机制会默认阻止没有苹果开发者签名的应用运行,可通过以下两种方式解决:
- 方法一:通过系统设置放行
- 打开「系统设置」→「隐私与安全性」,下拉到「安全性」分区
- 找到提示“Java已被阻止使用,因为它来自身份不明的开发者”的条目,点击右侧「仍要允许」
- 输入开机密码完成权限验证,重启终端后触发Java运行请求,弹出确认框时选择「打开」即可
- 方法二:通过命令移除隔离属性
如果安全性分区没有对应提示,直接执行命令移除JDK的下载隔离标识即可,注意把下方命令中的版本号替换为你实际安装的JDK 8版本:sudo xattr -d com.apple.quarantine /Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk
修复javac命令不生效问题
javac命令失效基本都是因为JAVA_HOME环境变量未正确配置,按以下步骤操作即可:
- 首先执行命令获取Java 8的真实安装路径:
/usr/libexec/java_home -v 1.8
执行后会输出对应的JDK路径,将路径内容复制备用 - 根据你使用的shell类型编辑对应配置文件:
- 系统默认zsh:编辑
~/.zshrc文件 - 自行切换为bash:编辑
~/.bash_profile文件
- 系统默认zsh:编辑
- 在配置文件末尾加入以下两行内容,将占位符替换为你刚才复制的JDK路径:
export JAVA_HOME=你复制的JDK路径 export PATH=$JAVA_HOME/bin:$PATH - 保存配置文件退出后,执行对应命令让配置立即生效:
- zsh环境执行:
source ~/.zshrc - bash环境执行:
source ~/.bash_profile
- zsh环境执行:
- 验证修复结果:执行
javac -version,输出Java 1.8.x版本号即为修复成功
补充注意:请确认你安装的是Java 8 JDK(开发工具包),如果只安装了JRE(运行环境)本身就不带javac命令,需要重新安装对应版本的JDK。
内容的提问来源于stack exchange,提问作者John Barrett
相关产品推荐
相关产品推荐

