java - 为什么我在 MAC OS X 10.11 上看不到 JAVA_HOME 路径?

标签 java macos

我正在尝试在我的 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/

相关文章:

Java:迭代多维数组概念

java - Oracle 在提交和选择之间滞后

java - 反序列化通用(但可序列化)类型

java - 为什么在 Java 和 C++ 中不允许隐藏虚函数/方法?

objective-c - 如何在Cocoa中动态添加组件

swift - 使用任何 RGB 颜色空间时无法获得有效的 CGContext?

objective-c - 使用 Objective-C 获取 Mac 系统温度

linux - 为什么这个 movq 指令适用于 linux 而不是 osx?

java - 维护 Android 应用程序的客户和卖家之间的单一数据库

mysql - MAMP - 升级到 MySQL 5.6