简体   繁体   English

Mac OS Java家庭歧义

[英]Mac OS java home ambiguty

Please see these 3 commands and their outcomes in 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

Why does the first one return 1.8? 为什么第一个返回1.8? What exactly is /libexec/java_home ? / libexec / java_home到底是什么?

Koray, 科瑞,

As per the Oracle docs ... 根据Oracle文档 ...

JAVA_HOME is just an environment variable used to trigger the 'java' found in your PATH to use a different JDK image. JAVA_HOME只是一个环境变量,用于触发在PATH中找到的“ java”以使用其他JDK映像。 Unfortunately, not all 'java' startup scripts obey this env variable. 不幸的是,并非所有的“ java”启动脚本都遵循该env变量。 It's also used by many java tool startup scripts to determine what 'java' to run, bypassing the 'java' found in the PATH setting. 许多Java工具启动脚本也使用它来确定要运行的“ java”,而绕过PATH设置中找到的“ java”。 Setting this variable during a JDK build is a bad idea, don't do it. 在JDK构建期间设置此变量是一个坏主意,请不要这样做。

I use Eclipse myself, and don't have a JAVA_HOME env variable defined, here is my output running the same commands. 我自己使用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

Not sure why you have two different versions but did you try updating your JDK recently? 不确定为什么有两个不同的版本,但是最近是否尝试更新JDK? Maybe when you upgraded it failed to launch a script to update your $JAVA_HOME. 也许升级后,它无法启动脚本来更新$ JAVA_HOME。

Here's the instructions for installing JDK and setting JAVA_HOME on *nix based OSes. 这是在基于* nix的OS上安装JDK和设置JAVA_HOME的说明

Let me know if that helps I can help you dig deeper if need be. 让我知道是否有帮助,如果需要,我可以帮助您进行更深入的研究。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM