关于java:我应该如何在OSX上设置JAVA_HOME

What should I set JAVA_HOME to on OSX

许多Java应用程序使用壳牌来配置他们的环境使用JAVA_HOME环境变量来开始正确版本的爪哇,Locate JRE Jars等。

On OSX 10.6,the following paths seem to be valid for this variable

1
2
3
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current

其中有些是Symlinks to the actual current vm(as defined in the Java preference pane).

但一个人应该用什么呢还是可以用他们的任何一个呢?But which one should be used-or is it okay to use any of them?


雪豹还有江豚吗?在10.5中,我只将EDOCX1和2的输出设置为该命令的输出,该命令应该给您Java首选项中指定的Java路径。下面是我的.bashrc文件中的一个片段,它设置了这个变量:

1
export JAVA_HOME=$(/usr/libexec/java_home)

我没有遇到过这种技术的任何问题。

有时候,我必须将EDCOX1的值2更改为Java的早期版本。例如,我正在维护的一个程序需要OS X上的32位Java 5,所以在使用该程序时,我通过运行设置EDOCX1×2。

1
export JAVA_HOME=$(/usr/libexec/java_home -v 1.5)

对于那些在你的道路上没有JAVA_HOME的人来说,像这样添加它。

1
sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home


另外,设置路径以反映JDK也很有趣。添加java_home后(可以通过"mipadi"引用的示例完成):

export JAVA_HOME=$(/usr/libexec/java_home)

添加到~/。配置文件:

export PATH=${JAVA_HOME}/bin:$PATH

P.S.:对于OSX,我通常在home dir中使用.profile,而不是.bashrc


我有Mac OS X(Sierra)10.12.2。

我按照以下步骤设置java_home以在react native(Android应用程序)上工作。

  • 打开终端(command+r,键入terminal,点击enter)。

  • 在~/.bash_配置文件中添加以下行。
    export JAVA_HOME=$(/usr/libexec/java_home)

  • 现在运行以下命令。
    source ~/.bash_profile

  • 您可以通过键入以下命令来检查java_Home的确切值。
    echo $JAVA_HOME

返回的值(输出)如下所示。
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

就是这样。


现在Java似乎安装在EDCOX1 9中。


我在Mac OS 10.6.8上

对我来说最简单的解决方案就是

1
$ export JAVA_HOME=$(/usr/libexec/java_home)

为了测试它是否工作,把

1
$ echo $JAVA_HOME

它显示

1
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

你也可以测试

1
$ which java


我倾向于使用/Library/Java/Home。"首选项"窗格的工作方式应该是最新的首选版本。


以上内容在优胜美地不再适用于图形应用!就像Eclipse,或者任何以聚光灯开始的东西。(.bash_profile,launchd.conf仅适用于终端会话。)在启动Eclipse之前,只需打开一个终端窗口,并发出以下命令:

1
launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

(使用您的安装路径!可能与$(/usr/libexec/java_home)一起使用,而不是使用完整路径。)

在这里查看关于永久解决方案的整篇优秀文章:通过launchd.conf设置环境变量在os x yosemite/el capitan/macos sierra中不再有效?


跳过终端设置,因为您提到了应用程序,永久系统环境变量设置(适用于MacOS Sierra;也适用于El Capitan):

1
launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)

(这将把java_设置为最新的1.8 JDK,很可能您已经完成了服务器更新,例如javac 1.8.0_101、javac 1.8.0_131)当然,将1.8改为1.7或1.6(真的吗?)以满足您的需求和系统


我发现这个堆栈有帮助,我有同样的问题,我可以解决:

我的Java路径在这里:

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

我需要把它放进我的电脑里。

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

希望帮助


创建文件~/.mavenrc

然后把这个粘贴到文件中

export JAVA_HOME=$(/usr/libexec/java_home)

测试

mvn -v


对我来说,Maven似乎在处理.mavenrc文件:

1
echo"export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)"> ~/.mavenrc

我肯定我也买了,只是不记得在哪里。


正如其他答案所指出的,找到Java主目录的正确方法是使用EDCOX1 1。

这方面的官方文档是在苹果的技术问答中:在OS X上的重要Java目录:HTTPS://ExcRe.Apple。


对于鱼壳用户,请使用以下内容:alias java7"set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"