许多使用shell脚本配置环境的Java应用程序都使用JAVA_HOME环境变量来启动正确的Java版本、定位JRE jar,等等。

在macOS X 10.6中,以下路径似乎对该变量有效

/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current

其中一些是到实际当前VM的符号链接(在Java Preference窗格中定义)。

但是应该使用哪一种——或者可以使用其中任何一种吗?


当前回答

正如其他回答指出的那样,找到Java主目录的正确方法是使用/usr/ libeexec /java_home。

官方文档在Apple的技术问答q1170: OS X上的重要Java目录:https://developer.apple.com/library/mac/qa/qa1170/_index.html

其他回答

我有MAC OS X(Sierra) 10.12.2。

我按照以下步骤设置JAVA_HOME在React Native(Android应用程序)上工作。

打开终端(Command+R,输入终端,按ENTER键)。 向~/.bash_profile添加以下行。 出口JAVA_HOME = $ (/ usr / libexec / JAVA_HOME) 现在运行以下命令。 源~ / . bash_profile 您可以通过键入以下命令来检查JAVA_HOME的确切值。 echo $ JAVA_HOME

返回的值(输出)如下所示。 /图书馆/ Java / Home / JavaVirtualMachines / jdk1.8.0_131.jdk /内容

就是这样。

正如其他回答指出的那样,找到Java主目录的正确方法是使用/usr/ libeexec /java_home。

官方文档在Apple的技术问答q1170: OS X上的重要Java目录:https://developer.apple.com/library/mac/qa/qa1170/_index.html

我倾向于使用/Library/Java/Home。首选项窗格的工作方式应该与您的首选版本保持一致。

我发现这个堆栈来帮助,我有同样的问题,我可以修复:

我的java路径在这里:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Content/Home

并且需要放入我的.bash_profile:

export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"

希望帮助

对于Fish Shell用户,使用如下代码:alias java7 "set -gx JAVA_HOME (/usr/libexec/ JAVA_HOME -v1.7)"