代码之家  ›  专栏  ›  技术社区  ›  Robert Christie

在OSX上,我应该将java_Home设置为什么?

  •  415
  • Robert Christie  · 技术社区  · 15 年前

    许多使用shell脚本来配置环境的Java应用程序使用 JAVA_HOME 环境变量启动Java的正确版本,找到JRE JARS,等等。

    在OSX 10.6上,以下路径似乎对该变量有效

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

    其中一些是实际的当前VM的链接(如Java首选项窗格中定义的)。

    但是应该使用哪一个呢?可以使用其中任何一个吗?

    13 回复  |  直到 6 年前
        1
  •  810
  •   mipadi    9 年前

    雪豹还有吗 /usr/libexec/java_home ?10点5分,我刚开始 JAVA_HOME 指向该命令的输出,该命令将给出Java首选项中指定的Java路径。这是我的一个片段 .bashrc 文件,设置此变量:

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

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

    有时我确实需要改变 爪哇之家 到Java的早期版本。例如,我正在维护的一个程序需要OS X上的32位Java 5,所以当使用该程序时,我设置 爪哇之家 跑步:

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

    对于那些没有 java_home 在您的路径中,像这样添加它。

    sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home
    
        2
  •  35
  •   lucasarruda    15 年前

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

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

    添加到~/。配置文件:

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

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

        3
  •  18
  •   hygull    8 年前

    我有 Mac OS X(Sierra)10.12.2版 .

    我设定 爪哇之家 继续工作 反应本土化 (对于Android应用程序)按照以下步骤操作。

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

    • 将下列行添加到 ~/巴什曲线 . export JAVA_HOME=$(/usr/libexec/java_home)

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

    • 您可以检查 爪哇之家 通过键入以下命令。 echo $JAVA_HOME

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

    就是这样。

        4
  •  14
  •   Christian Giupponi Bestmomo Momo    6 年前

    现在,Java似乎被安装在 /Library/Java/JavaVirtualMachines

        5
  •  12
  •   Rae    10 年前

    我在Mac OS 10.6.8上

    对我来说最简单的解决办法就是

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

    为了测试它是否工作,把

    $ echo $JAVA_HOME
    

    它显示

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

    你也可以测试

    $ which java
    
        6
  •  9
  •   Clint    15 年前

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

        7
  •  7
  •   Christian Giupponi Bestmomo Momo    6 年前

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

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

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

    在这里查看关于永久解决方案的整篇优秀文章: Setting environment variables via launchd.conf no longer works in OS X Yosemite/El Capitan/macOS Sierra?

        8
  •  2
  •   Community CDub    8 年前

    我找到了这个 stack 为了提供帮助,我也遇到了同样的问题,我可以解决:

    我的Java路径在这里:

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

    需要把它放进我的 .bash_profile :

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

    希望帮助

        9
  •  2
  •   ericn    8 年前

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

    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(真的吗?)以满足您的需求和系统

        10
  •  1
  •   Kristopher Johnson    9 年前

    正如其他答案所指出的,找到Java主目录的正确方法是使用 /usr/libexec/java_home .

    官方文件在苹果公司 技术问答AQA170:OSX上的重要Java目录 : https://developer.apple.com/library/mac/qa/qa1170/_index.html

        11
  •  1
  •   maksimov    8 年前

    对我来说,马文似乎在 .mavenrc 文件:

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

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

        12
  •  1
  •   KhaledMohamedP    8 年前

    创建文件 ~/.mavenrc

    然后把这个粘贴到文件中

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

    测试

    mvn -v

        13
  •  -1
  •   Yichuan Wang    9 年前

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