macOS Mojave (10.14) 到 Lion (10.7) 上的 JAVA_HOME 在哪里?

新手上路,请多包涵

Java 是最新版本 macOS 上的可选包。

然而一旦安装它似乎 JAVA_HOME 环境变量 设置不正确

原文由 Olivier Refalo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 814
2 个回答

安装 Java 可选包Oracle JDK 后,将以下行之一添加到 ~/.bash_profile 文件将相应地设置环境变量。

 export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
or simply
export JAVA_HOME="$(/usr/libexec/java_home)"

注意:如果您使用 brew 在 mac 上安装了 openjdk ,请运行 sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk 以使上述工作正常

更新:基于 Jilles van Gurp 响应 添加了 -v 标志。

原文由 Olivier Refalo 发布,翻译遵循 CC BY-SA 4.0 许可协议

/usr/libexec/java_home 不是目录而是可执行文件。它输出当前配置的 JAVA_HOME,实际上并没有改变它。这就是 Java 首选项应用程序的用途,在我的情况下,它似乎已损坏并且实际上没有正确更改 JVM。它确实列出了 1.7 JVM,但我可以切换/取消切换并拖放我想要的所有内容,而无需实际更改 /usr/libexec/java_home 的输出。

即使在 Lion 上从 Oracle 安装 1.7.0 u6 并将其设置为首选项中的默认值后,它仍然返回 apple 1.6 java 主页。唯一真正对我有用的修复方法是手动设置 JAVA_HOME:

 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/

至少这样,当从命令行运行时,它将使用 1.7。 /usr/libexec/java_home 还是坚持1.6。

更新Understanding Java From Command Line on OSX 对它 的工作原理有更好的解释。

 export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

是这样做的方法。请注意,将其更新为 1.8 就可以正常工作。

原文由 Jilles van Gurp 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题