我想在我的MAC OS X 10.11(El Capitan)上运行一个JAVA应用程序。为什么我无法在MAC OS X 10.11上看到JAVA_HOME路径?
我用 this link在我的MAC OS X 10.11上设置了JAVA_HOME。
我能够运行以下命令:
Java的版本
的Java
但是当我去到终端应用程序在Mac和输入echo $ JAVA_HOME,我什么也看不见。 这是为什么? 这是否意味着我的JAVA_HOME设置不正确?
我想在我的MAC OS X 10.11(El Capitan)上运行一个JAVA应用程序。为什么我无法在MAC OS X 10.11上看到JAVA_HOME路径?
我用 this link在我的MAC OS X 10.11上设置了JAVA_HOME。
我能够运行以下命令:
Java的版本
的Java
但是当我去到终端应用程序在Mac和输入echo $ JAVA_HOME,我什么也看不见。 这是为什么? 这是否意味着我的JAVA_HOME设置不正确?
好吧,首先,我们要明确其中设置JAVA_HOME
。
简化后,您可以将其定义为两个文件:~/.bashrc
或~/bash_profile
。通过默认前者是为所谓的“交互式非登录shell”执行的,而后者用于“登录shell”。 “登录shell”正是你期望的:一个通过命令行登录后启动的shell。例如,“交互式非登录外壳”是从GUI内启动的外壳。所以,据此,我们应该把我们的出口声明放入~/.bashrc
。注意:尽管OS X的“终端”应用程序读取这两个文件,但这不是默认行为,因此不应该这样处理。这就是为什么我写了一个解释。
你需要让每一个外壳被打开时,该变量设置导出JAVA_HOME在~/.bashrc
文件。
在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
如果您想使用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正确的目录等 对我来说,它是“/图书馆/的Java/JavaVirtualMachines/1.6.0.jdk /内容/首页”。
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
但接受的答案也可以。更新后只需注意路径更改。
关于如何在OSX中设置JAVA_HOME,你会找到很多答案,但是如果完全需要设置JAVA_HOME,很难找到问题的答案。
这是为什么?这是否意味着我的JAVA_HOME设置不正确?
在OSX上,设置JAVA_HOME环境变量是可选的。 JRE和JDK安装程序不提供正在设置的JAVA_HOME;所以JAVA_HOME没有被设置是非常好的。
您没有回答这里提到的第一个问题。 –
@PeterVerhas噢,我隐含地说:它不可用,因为它没有被导出到正确的dotfile文件中。要使环境变量可用,需要设置它;) –
仅供参考 - 这对于高塞拉利昂不适用。我需要指定jdk1.8,并安装了java 9。唯一的解决方案是删除Java 9. – eimmer