我正在尝试在我的MAC OS X 10.11(El Capitan)上运行一个JAVA应用程序。
我使用这个链接来设置我的MAC OS X 10.11上的JAVA_HOME。
我可以运行以下命令:
java -version
which java
然而,当我进入MAC上的Terminal应用程序并键入echo $JAVA_HOME时,我什么也看不到。 为什么呢? 这是不是意味着我的JAVA_HOME没有正确设置?
首先,我们必须明确地确定在哪里设置JAVA_HOME
。简单来说,您可以在两个文件中定义它:~/.bashrc
或~/bash_profile
。默认情况下,前者对被称为“交互式非登录shell”的内容执行,而后者用于“登录shell”。 "登录shell"就是您期望的一样:通过命令行登录后启动的shell。 "交互式非登录shell"是从GUI中启动的shell。因此,根据这个,我们应该将export语句放入~/.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
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
这是针对Java 8的...我找到它的原始链接在这里 在Mac OS X 10.10 Yosemite和10.11 El Capitan上安装Java
但是接受的答案也可以。只需要注意更新后路径的更改。