繁体   English   中英

java -version告诉我8但jdk是1.7 - OSX 10.9.x

[英]java -version tells me 8 but jdk is 1.7 - OSX 10.9.x

我不明白的东西 - 我在OSX 10.9.5上,当我在终端上运行java -version时,我得到:

java版“1.8.0_40”
Java(TM)SE运行时环境(版本1.8.0_40-b25)
Java HotSpot(TM)64位服务器VM(内置25.40-b25,混合模式)

但在我的/ Library / Java / JavaVirtualMachines / dir中,我看到3个JDK:

  • jdk1.7.0_71.jdk
  • jdk1.7.0_75.jdk
  • jdk1.7.0_76.jdk

Eclipse使用jdk1.7.0_76.jdk。 我记得在Eclipse中为一些个人开发项目安装Java 7,但我不记得曾经安装过Java 8.那么为什么java -version说我运行8? 如果该目录中的Java 8不存在jdk,怎么办呢?

困惑。 TIA。

您正在质疑的版本实际上是Java Runtime Environment (JRE)版本,而不是Java Developer Kit (JDK)版本; 他们是两个不同的东西。 您正在运行Java 8( JRE ),但如果有可用的运行时,您可以选择性地选择另一个运行时。

如果您想查看当前可能具有的所有Java版本:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    1.8.0_45,             x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
    1.6.0_65-b14-466.1,   x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1,     i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

要查看当前正在运行的默认值:

$ which java ; java -version
/usr/bin/java
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

要查看安装了哪些JDKs

$ ls /Library/Java/JavaVirtualMachines/
jdk1.8.0_45.jdk

Java运行时环境(JRE)

JRE允许您运行用Java编程语言编写的应用程序。 与JDK一样,它包含Java虚拟机(JVM),包含Java平台API的类和支持文件。 与JDK不同,它不包含编译器和调试器等开发工具。

Java开发工具包(JDK)

JDK是一个使用Java编程语言构建应用程序,applet和组件的开发环境。 JDK包括用于开发和测试用Java编程语言编写并在Java平台上运行的程序的工具。

由于Eclipse依赖于JDK的工具,因此它们肯定会使用您安装的JDKs ,因为它无法仅使用JRE

在你.path_profile文件夹中导出JAVA_HOME到你的JDK8文件夹,java -version是你JVN的结果,因为在我看来你把java_home还指向JDK1.7做了以下

$ vim .bash_profile 

export JAVA_HOME=YOUR_JDK8_PATH 

$ source .bash_profile

暂无
暂无

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

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