Mac OS java_home歧义

时间:2014-07-16 19:03:49

标签: java macos

请在MacOS中查看这3个命令及其结果:

Korays-MacBook-Pro:~ koraytugay$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home

Korays-MacBook-Pro:~ koraytugay$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

Korays-MacBook-Pro:~ koraytugay$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

为什么第一个返回1.8? / libexec / java_home究竟是什么?

1 个答案:

答案 0 :(得分:1)

科拉伊,

根据Oracle docs ...

JAVA_HOME只是一个环境变量,用于触发' java'在PATH中找到使用不同的JDK映像。不幸的是,并非所有' java'启动脚本遵循此env变量。它也被许多java工具启动脚本用来确定什么' java'跑,绕过'java'在PATH设置中找到。在JDK构建期间设置此变量是一个坏主意,不要这样做。

我自己使用Eclipse,并且没有定义JAVA_HOME env变量,这是我的输出运行相同的命令。

brandon@brandons-mbp ~
$ /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

brandon@brandons-mbp ~
$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

brandon@brandons-mbp ~
$ echo $JAVA_HOME

不确定为什么你有两个不同的版本,但你最近是否尝试更新JDK?也许当你升级它时无法启动脚本来更新你的$ JAVA_HOME。

这里有instructions用于安装JDK并在基于* nix的操作系统上设置JAVA_HOME。

如果有帮助我可以帮助您在需要时帮助您深入挖掘。