macOS Mojave (10.14) 到 Lion (10.7) 上的JAVA_HOME在哪里?

2022-08-31 04:15:40

Java 是最新版本的 macOS 上的可选包。

然而,一旦安装,它似乎JAVA_HOME环境变量没有正确设置


答案 1

安装 Java 可选包Oracle JDK 后,将以下行之一添加到 ~/.bash_profile 文件中将相应地设置环境变量。

export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
or simply
export JAVA_HOME="$(/usr/libexec/java_home)"

注意:如果您使用 brew 在 mac 上安装了 openjdk,请运行上述操作才能正常工作 sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

更新:添加了基于 Jilles van Gurp 响应-v 标志。


答案 2

/usr/libexec/java_home不是目录,而是可执行文件。它输出当前配置的JAVA_HOME,但实际上不会更改它。这就是Java Preferences应用程序的用途,在我的情况下,它似乎坏了,实际上并没有正确更改JVM。它确实列出了1.7 JVM,但我可以切换/取消切换和拖放我想要的所有内容,而无需实际更改./usr/libexec/java_home

即使在从Oracle on Lion上安装1.7.0 u6并在首选项中将其设置为默认值之后,它仍然返回了apple 1.6 java主页。唯一真正适合我的修复方法是手动设置JAVA_HOME:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/

至少这样,当从命令行运行时,它将使用1.7。 仍然坚持1.6。/usr/libexec/java_home

更新在OSX上从命令行了解Java可以更好地解释其工作原理。

export JAVA_HOME=`/usr/libexec/java_home -v 1.7` 

是做到这一点的方法。请注意,将其更新到1.8工作正常。