java版本告诉我是8,但jdk是1.7-OSX10.9.x

java版本告诉我是8,但jdk是1.7-OSX10.9.x,java,macos,Java,Macos,有些事情我不明白-我在OSX 10.9.5上,当我在终端运行java-version时,我得到: java版本“1.8.0_40” Java(TM)SE运行时环境(构建1.8.0_40-b25) Java HotSpot(TM)64位服务器虚拟机(构建25.40-b25,混合模式) 但在my/Library/Java/JavaVirtualMachines/dir中,我看到了3个JDK: jdk1.7.0_71.jdk jdk1.7.0_75.jdk jdk1.7.0_76.jdk Ecli

有些事情我不明白-我在OSX 10.9.5上,当我在终端运行
java-version
时,我得到:

java版本“1.8.0_40”
Java(TM)SE运行时环境(构建1.8.0_40-b25)
Java HotSpot(TM)64位服务器虚拟机(构建25.40-b25,混合模式)

但在my/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中为一些个人开发项目安装了Java7,但我不记得曾经安装过Java8。那么为什么
java-version
会说我在运行8呢?如果在该目录中不存在Java8的jdk,它又怎么可能呢


困惑。TIA.

在you.path\u profile文件夹中,将JAVA\u HOME导出到JDK8文件夹中,JAVA-version是由您JVN生成的,因为在我看来,将您的JAVA\u HOME仍然指向JDK1.7执行以下操作

$ vim .bash_profile 

export JAVA_HOME=YOUR_JDK8_PATH 

$ source .bash_profile

您询问的版本实际上是
Java运行时环境(JRE)
版本,而不是
Java开发工具包(JDK)
版本;它们是两种不同的东西。您正在运行Java8(
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)
要查看安装了哪些
jdk

$ ls /Library/Java/JavaVirtualMachines/
jdk1.8.0_45.jdk
Java运行时环境(JRE)

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

Java开发工具包(JDK)

JDK是一个用于构建的开发环境 使用Java编程的应用程序、小程序和组件 语言JDK包含了一些有用的工具,用于开发和测试用Java编程语言编写并在计算机上运行的程序 Java平台


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

是无法工作的。谢谢您的回复,但我不确定我是否遵循了-我想使用Java 7。如果“YOUR_JDK8_PATH”路径不在前面提到的目录:/Library/Java/JavaVirtualMachines/,我不相信它存在。尝试在shell中查找/-名称“Jdk”,您将获得Jdk的所有路径。谢谢您的帮助-我想我假设,因为我下载了Java 7 Jdk,我的JRE也将是7。但也许JRE 8是作为我的IT部门的标准构建的一部分安装的?谁知道呢。在JDK 7和JRE 8的基础上出现任何问题吗?您不应该有任何问题,因为Java 8向后兼容较旧版本的JRE和JDK。在极少数情况下,可能会出现例外情况,但除非您使用的是已被弃用一段时间的产品,否则您可能不会遇到任何问题。以下是有关此主题的更多信息: