解决MacOS不能正确识别JAVA_HOME问题
Posted gcygeeker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决MacOS不能正确识别JAVA_HOME问题相关的知识,希望对你有一定的参考价值。
目录
背景
最近使用Bazel在MacOS上编译运行Java代码,遇到Bazel一直识别不到本地的JDK导致编译报错的问题,经过这几天的查资料研究,终于发现解决办法。
解决方案
查看Java Home值
终端运行:
$ /usr/libexec/java_home -V
输出:
Matching Java Virtual Machines (1):
1.8.0_311 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home
无论安装过多少个JDK版本,只要最后一行的输出类似这种:/Library/Java/JavaVirtualMachines/jdkxxxxxxxxx/xxx/xxx
证明设置的java home是正常的,
如果最后一行输出是/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
,说明java_home识别到的路径不正常,可以尝试用下面方法解决。
删除识别的错误目录
$ sudo rm -rf /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
重新启动系统
注意一定要重启系统,不然java_home命令返回的值不会更新。
重启完成后终端运行:
$ /usr/libexec/java_home
如果输出的是/Library/Java/JavaVirtualMachines
下的目录,说明问题已解决。
补充
通过解决此问题,了解到了Mac下最规范的设置JAVA_HOME环境变量的方式,贴在此处。
设置JAVA_HOME环境变量
$ vim ~/.bash_profile
添加export JAVA_HOME=$(/usr/libexec/java_home)
$ source ~/.bash_profile
(注:.bash_profile
视终端类型可能需要改为.zshrc
或.bashrc
等。)
参考资料
以上是关于解决MacOS不能正确识别JAVA_HOME问题的主要内容,如果未能解决你的问题,请参考以下文章
台式机安装黑苹果MacOS 10.15.3后,系统无法正确的识别主板信息了。该如何恢复?