为什么我无法在 MAC OS X 10.11 上看到JAVA_HOME路径?在哪里定义它定义什么
我正在尝试在我的MAC OS X 10.11(El Capitan)上运行JAVA应用程序。
我使用此链接在我的MAC OS X 10.11上设置JAVA_HOME。
我能够运行以下命令:
java -version
哪个 java
但是,当我转到MAC上的终端应用程序并键入echo $JAVA_HOME时,我什么也看不到。为什么?这是否意味着我的JAVA_HOME设置不正确?
我正在尝试在我的MAC OS X 10.11(El Capitan)上运行JAVA应用程序。
我使用此链接在我的MAC OS X 10.11上设置JAVA_HOME。
我能够运行以下命令:
java -version
哪个 java
但是,当我转到MAC上的终端应用程序并键入echo $JAVA_HOME时,我什么也看不到。为什么?这是否意味着我的JAVA_HOME设置不正确?
好的,首先,我们必须明确设置的位置 。JAVA_HOME
简化后,您可以在两个文件中定义它:要么要么,要么。默认情况下,前者用于所谓的“交互式非登录 shell”,而后者用于“登录 shell”。“登录 shell”正是你所期望的:一个在通过命令行登录后启动的 shell。例如,“交互式非登录 shell”是从 GUI 中启动的 shell。因此,根据这一点,我们应该将导出语句放入 。~/.bashrc
~/bash_profile
~/.bashrc
旁注:虽然OS X的“终端”应用程序读取上述两个文件,但这不是默认行为,因此不应被视为默认行为。这就是为什么我写了一个解释。
您需要导出文件中JAVA_HOME,以便每次打开 shell 时都设置变量。~/.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
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
那是针对Java 8的....我发现它的原始链接在这里在Mac OS X 10.10 Yosemite和10.11 El Capitan上安装Java
但公认的答案也有效。只是需要注意更新后的路径变化。