Mac OS java主页模棱两可

Mac OS java主页模棱两可,java,macos,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 (buil

请在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到底是什么

Koray

根据

JAVA_HOME只是一个环境变量,用于触发路径中的“JAVA”以使用不同的JDK映像。不幸的是,并非所有的“java”启动脚本都遵循此env变量。许多java工具启动脚本也使用它来决定运行什么“java”,绕过路径设置中的“java”。在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_主页

下面是在基于*nix的操作系统上安装JDK和设置JAVA_HOME的方法


让我知道这是否有帮助,如果需要,我可以帮助你深入挖掘

啊,这就是问题所在。第一个触发路径中的java。。知道了。。但是为什么你会说设置JAVA_HOME变量不好呢?哦,这是直接从Oracle文档页面:)我有系统管理员的背景,所以我通常警告用户在windows和OS X上玩任何类型的env变量时都要非常小心!好的,谢谢。。我已经明确地将JAVA_HOME设置为1.7,并且安装了1.7和1.8。可能1.8已经变成了/usr/libexec/java_home(我仍然不明白这个命令实际上是什么,但它是可以的…),1.7只保留在/Library/java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/home中,顺便说一句,1.8在:/Library/java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/home中