Mac M1(Monterey 12.3.1)java_home异常:无法定位Java运行时
解决Mac M1(Monterey 12.3.1)上/usr/libexec/java_home无法定位OpenJDK 11的问题
问题核心
你遇到的问题源于两点:一是手动配置的JAVA_HOME路径存在拼写错误,二是Homebrew安装的OpenJDK默认不在/usr/libexec/java_home的系统扫描目录范围内。
修复步骤
修正JAVA_HOME路径
你配置的路径中openjdk.j是错误写法,正确目录应为openjdk.jdk。修改你的shell配置文件(如~/.zshrc或~/.bash_profile)中的配置:export JAVA_HOME=/opt/homebrew/Cellar/openjdk@11/11.0.15/libexec/openjdk.jdk/Contents/Home先验证路径是否存在:
ls /opt/homebrew/Cellar/openjdk@11/11.0.15/libexec/确认输出结果里包含
openjdk.jdk目录。将OpenJDK链接到系统识别目录
/usr/libexec/java_home默认扫描/Library/Java/JavaVirtualMachines/下的JDK文件,通过创建软链接让系统识别Homebrew安装的版本:sudo ln -s /opt/homebrew/Cellar/openjdk@11/11.0.15/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk输入管理员密码执行即可。
验证修复效果
刷新配置文件(以zsh为例):source ~/.zshrc执行以下命令确认修复成功:
- 运行
/usr/libexec/java_home,应输出正确的JDK路径 - 运行
echo $JAVA_HOME,确认路径与配置一致 - 再次运行
java --version,验证Java版本正常
- 运行
可选:用Homebrew自动配置(避免版本更新后路径失效)
查看Homebrew给出的官方配置提示:brew info openjdk@11按照提示将以下内容添加到配置文件,后续OpenJDK版本更新时无需手动修改路径:
echo 'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc echo 'export JAVA_HOME="/opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home"' >> ~/.zshrc
内容的提问来源于stack exchange,提问作者Mandar Pande
相关产品推荐
相关产品推荐

