【问题标题】:Why I am not able to see the JAVA_HOME path on my MAC OS X 10.11?为什么在我的 MAC OS X 10.11 上看不到 JAVA_HOME 路径?
【发布时间】:2016-01-07 21:36:03
【问题描述】:

我正在尝试在我的 MAC OS X 10.11 (El Capitan) 上运行 JAVA 应用程序。

我使用 this link 在我的 MAC OS X 10.11 上设置 JAVA_HOME。

我能够运行以下命令:
java -版本
哪个java

但是,当我转到 MAC 上的终端应用程序并键入 echo $JAVA_HOME 时,我什么也看不到。 这是为什么? 这是否意味着我的 JAVA_HOME 设置不正确?

【问题讨论】:

    标签: java macos


    【解决方案1】:

    你会发现很多关于如何在 OSX 中设置 JAVA_HOME 的答案,但是如果设置 JAVA_HOME 是必要的,那么很难找到这个问题的答案。

    这是为什么呢?这是否意味着我的 JAVA_HOME 设置不正确?

    在 OSX 上,设置 JAVA_HOME 环境变量是可选的。 JRE 和 JDK 安装程序不提供设置 JAVA_HOME;所以没有设置 JAVA_HOME 就很好了。

    【讨论】:

      【解决方案2】:
      export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
      

      那是针对 Java 8 .... 我发现它的原始链接在这里 Installing Java on Mac OS X 10.10 Yosemite and 10.11 El Capitan

      但接受的答案也有效。只需要关注更新后的路径变化即可。

      【讨论】:

        【解决方案3】:

        如果您出于某种原因想使用 jdk 1.6,Apple 已停止支持。更新 Mac OS 后,它将被删除。您仍然可以从此页面获取 jdk 1.6:https://support.apple.com/kb/DL1572?locale=zh_CN

        再次安装jdk 1.6后,记得在~/.bash_profile等中确认导出系统变量$JAVA_HOME的正确目录等。 对我来说,它是“/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home”。

        【讨论】:

          【解决方案4】:

          在哪里定义它

          好的,首先,我们要明确在哪里设置JAVA_HOME

          简化后,您可以在两个文件中定义它:~/.bashrc~/bash_profile默认 前者用于所谓的“交互式非登录 shell”,而后者用于“登录 shell”。 “登录外壳”正是您所期望的:通过命令行登录后启动的外壳。例如,“交互式非登录 shell”是从 GUI 内启动的 shell。所以,据此,我们应该将我们的导出语句放入~/.bashrc

          旁注:虽然 OS X 的“终端”应用程序会读取提到的两个文件,但这不是默认行为,因此不应如此对待。这就是我写解释的原因。

          定义什么

          您需要在~/.bashrc文件中导出JAVA_HOME,以便每次打开shell时设置变量。

          在 OS X 上,Java 开发工具包和运行时环境在 /Library/Java/JavaVirtualMachines/ 下存储了很长一段时间。看看那里。它是这样看待我的机器的:

          /Library/Java/JavaVirtualMachines/
          ├── jdk1.7.0_45.jdk
          ├── jdk1.8.0_20.jdk
          ├── jdk1.8.0_25.jdk
          └── jdk1.8.0_51.jdk
          

          子文件夹与此类似

          jdk1.7.0_45.jdk/
          └── Contents
              ├── Home
              ├── Info.plist
              └── MacOS
          

          我们得到了它。因此,如果您想指向 JDK 1.7.0_45,请将以下语句放入您的 .bashrc

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

          为确保调用该 Java 版本的正确二进制文件,您还应该在上述语句之后的某处添加以下内容:

          export PATH=$JAVA_HOME/bin:$PATH
          

          【讨论】:

          • 您没有回答这里提出的第一个问题。
          • @PeterVerhas 哦,好吧,我隐含地做了:它不可用,因为它没有导出到正确的点文件中。要使环境变量可用,需要对其进行设置;)
          • 仅供参考 - 这在 High Sierra 上不起作用。我需要指定 jdk1.8,并安装了 java 9。唯一的解决方案是删除 Java 9。
          • @eimmer 这并不反对问题的基本答案。降级 Java 是完全不同的事情。
          • @MarkuswMahlberg 这个答案在 High Sierra 上对我不起作用,所以我想让人们知道这个答案可能不适用于他们。我要去挖掘一些,看看我是否会发现更多......
          猜你喜欢
          • 1970-01-01
          • 2016-05-10
          • 1970-01-01
          • 2016-03-20
          • 2016-12-22
          • 1970-01-01
          • 2016-04-09
          • 2016-10-08
          相关资源
          最近更新 更多