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

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


当前回答

下面的方法对我很有效。我在OSX Yosemite上使用ZSH安装了Java 8。

下面的命令/usr/libexec/java_home会生成JDK home的路径:

/ Library / Java / JavaVirtualMachines jdk1 8月0_05 jdk /地点/ Home。

在~/.zshrc中,

export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"

其他回答

/usr/ libeexec /java_home不是一个目录,而是一个可执行文件。它输出当前配置的JAVA_HOME,并且不实际更改它。这就是Java Preferences应用程序的作用,在我的例子中,它似乎坏了,实际上没有正确地更改JVM。它确实列出了1.7 JVM,但我可以切换/取消切换和拖放我想要的一切,而不实际改变/usr/libexec/java_home的输出。

即使在Lion上从Oracle安装了1.7.0 u6并在首选项中将其设置为默认值后,它仍然返回apple 1.6 java home。唯一对我有效的修复是手动设置JAVA_HOME:

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

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

更新:在OSX上从命令行理解Java有更好的解释如何工作。

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

就是这样做的。注意,将其更新到1.8就可以了。

方便的命令,知道java的家和其他细节。

java -XshowSettings:properties -version

为了了解mac上的所有Java home:

/usr/libexec/java_home -V

对于Mac OS X 10.9,我从Oracle安装了最新版本的JRE,然后将JAVA_HOME重置为/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home。

我相信有更好的方法,但这让我开始运行。

hughsmac:~ hbrien$回溯$JAVA_HOME / Library / Java / JavaVirtualMachines jdk1。7 . 0_45 jdk /地点/ Home。

一个更好的(更可升级的)方法是使用以下方法:

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

这应该与AWS一起工作,因为它在Home下面有bin

适用于macOS Mojave 10.14.1和JAVA 11.0.1 我将配置文件设置为

export JAVA_HOME=$(/usr/libexec/java_home)

在终端输入此键确认:

$JAVA_HOME/bin/java -version

java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)