我正在尝试在我的 MAC OS X 10.11 (El Capitan) 上运行 JAVA 应用程序。
我用了 this link在我的 MAC OS X 10.11 上设置 JAVA_HOME。
我可以运行以下命令:
java -version
哪个java
但是,当我转到 MAC 上的终端应用程序并键入 echo $JAVA_HOME 时,我什么也没看到。 这是为什么? 这是否意味着我的 JAVA_HOME 设置不正确?
最佳答案
在哪里定义
好的,首先,我们要明确在哪里设置JAVA_HOME
。
简化后,您可以在两个文件中定义它:~/.bashrc
或~/bash_profile
。 默认 前者为所谓的“交互式非登录 shell”执行,而后者用于“登录 shell”。
“登录 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
关于java - 为什么我在 MAC OS X 10.11 上看不到 JAVA_HOME 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33046697/