java -version 告诉我 8 但 jdk 是 1.7 - OSX 10.9.x
Posted
技术标签:
【中文标题】java -version 告诉我 8 但 jdk 是 1.7 - OSX 10.9.x【英文标题】:java -version tells me 8 but jdk is 1.7 - OSX 10.9.x 【发布时间】:2015-05-04 22:59:57 【问题描述】:我不明白的东西 - 我在 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/ 目录中,我看到 3 个 JDK:
jdk1.7.0_71.jdk jdk1.7.0_75.jdk jdk1.7.0_76.jdkEclipse 使用 jdk1.7.0_76.jdk。我记得在 Eclipse 中为一些个人开发项目安装了 Java 7,但我不记得曾经安装过 Java 8。那么为什么 java -version
会说我正在运行 8?如果该目录中不存在 Java 8 的 jdk 怎么办?
困惑。 TIA。
【问题讨论】:
【参考方案1】:你质疑的版本其实是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 Virtual 机器 (JVM)、组成 Java 平台 API 的类,以及 支持文件。与JDK不同,它不包含开发 编译器和调试器等工具。
Java 开发工具包 (JDK)
JDK是用于构建的开发环境 使用 Java 编程的应用程序、小程序和组件 语言。 JDK 包括用于开发和测试以 Java 编程语言编写并运行在 Java 平台。
由于 Eclipse 依赖于 JDK
中的工具,它们肯定会使用您安装的 JDKs
之一,因为仅使用 JRE
是无法工作的。
【讨论】:
非常感谢您的帮助 - 我想我已经假设自从我下载了 Java 7 JDK 之后我的 JRE 也将是 7。但也许 JRE 8 是作为我的 IT 部门标准构建的一部分安装的?谁知道。使用 JRE 8 从 JDK 7 开发的任何问题? 您应该没有任何问题,因为 Java 8 向后兼容旧版本的 JRE 和 JDK。在极少数情况下,可能会出现例外情况,但除非您使用已被弃用很长时间的东西,否则您可能不会遇到任何问题等。以下是有关该主题的更多信息:oracle.com/technetwork/java/javase/…【参考方案2】:在你的 .path_profile 文件夹中将 JAVA_HOME 导出到你的 JDK8 文件夹中,java -version 是你 JVN 的结果,因为在我看来你的 java_home 仍然指向 JDK1.7 执行以下操作
$ vim .bash_profile
export JAVA_HOME=YOUR_JDK8_PATH
$ source .bash_profile
【讨论】:
感谢您的回复,但我不确定我是否遵循 - 我想使用 Java 7。如果“YOUR_JDK8_PATH”路径不在上述目录中,我不相信它存在:/Library/ Java/JavaVirtualMachines/. 在 shell 中尝试 find / -name "Jdk" 你会得到 jdk 的所有路径以上是关于java -version 告诉我 8 但 jdk 是 1.7 - OSX 10.9.x的主要内容,如果未能解决你的问题,请参考以下文章