为什么我无法在 MAC OS X 10.11 上看到JAVA_HOME路径?在哪里定义它定义什么

2022-09-03 03:47:10

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

使用此链接在我的MAC OS X 10.11上设置JAVA_HOME。

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

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


答案 1

在哪里定义它

好的,首先,我们必须明确设置的位置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

答案 2
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

那是针对Java 8的....我发现它的原始链接在这里在Mac OS X 10.10 Yosemite和10.11 El Capitan上安装Java

但公认的答案也有效。只是需要注意更新后的路径变化。