【问题标题】:Java SE 6 vs. JRE 1.6 vs. JDK 1.6 - What do these mean?Java SE 6 vs. JRE 1.6 vs. JDK 1.6 - 这些是什么意思?
【发布时间】:2010-09-20 00:20:45
【问题描述】:

我看到很多不同的 Java 术语在流传。我需要安装 JDK 1.6。我的理解是 Java 6 == Java 1.6。但是,当我安装 Java SE 6 时,我得到一个报告为 11.0 版的 JVM!谁能解决这个疯子?

【问题讨论】:

标签: java


【解决方案1】:
  • JDK - Java 开发工具包
  • JRE - Java 运行时环境
  • Java SE - Java 标准版

SE 定义了一组能力和功能;有更复杂的版本(企业版 - EE)和更简单的版本(微型版 - ME - 用于移动环境)。

JDK 包括开发 Java 应用程序所需的编译器和其他工具; JRE 没有。因此,要运行其他人提供的 Java 应用程序,您需要 JRE;要开发 Java 应用程序,您需要 JDK。

已编辑: 正如 Chris Marasti-Georg 在评论中指出的那样,您可以在 Sun 的 Java 网站上找到大量信息,特别是在 Java SE 部分,(第二个选项,Java SE Development Kit (JDK) 6 Update 10 )。


2011-04-06 编辑: 世界发生了翻天覆地的变化,Java 现在由收购 Sun 的 Oracle 管理。今年晚些时候,sun.com 域应该会变暗。新页面(基于重定向)是 Oracle 技术网络上的 Java 页面。 (另见java.com。)


2013 年 1 月 11 日编辑: 世界继续转动(尽管 2012 年 12 月 21 日),你瞧,JRE 6 即将结束支持。 Oracle 表示在 2013 年 2 月之后不再公开更新 Java 6。

在给定的 Java 版本中,此答案仍然有效。 JDK 是 Java Development Kit,JRE 是 Java Runtime Environment,Java SE 是标准版,等等。但是版本 6 (1.6) 已经过时了。

2015-04-29 编辑: 随着又绕太阳转几圈,也到了结束对 Java SE 7 支持的时候了。 2015 年 4 月,Oracle affirmed 表示不再提供 Java SE 7 的公共更新。Java SE 8 的公共更新暂定于 2017 年 3 月结束,但该结束日期可能会发生变化(稍后,而不是更早)。

【讨论】:

  • 那么,如果我需要 JDK 1.6,我应该安装什么?安装 Java SE 6 为我提供了一个报告为 11.0 版的 JVM!
  • 你需要去 sun 下载 JDK 1.6 或 6,不管他们把它列为什么。
  • @Pacerier:2008 年 10 月是这样吗?还有,JDK的主要组件是Java编译器,不是吗?
  • “SE 定义了一组能力和功能”。这是模糊的。你能详细说明一下吗?我知道 JDK 包含编译器和可能标准库。我对吗?如果是,SE 包含什么?什么种类的能力和功能?我的意思是如果我想使用 lambda,那么我必须安装适当的 JDK 来编译我的代码,对吗? SE 在那里没有任何作用?
  • @Nawaz:有多少这类信息可以包含在这个答案中,而不会变得太宽泛。 Oracle 和 Java 网站上回答了这些问题。例如,您应该查看Where can I get technical information about Java。它包含比较和对比 JRE 和 JDK,以及 JRE 和 JSE 的部分。我相信 JVM 随 JDK 和 JRE 一起提供。如果您是开发人员,您将获得 JDK,但作为用户,JRE 就足够了。 Lambda 支持取决于 Java 的版本(9 vs 8 vs 7 vs 6...)。
【解决方案2】:

这可能对某人有帮助:

我正在我的系统上安装最新的 Java 进行开发,目前它是 Java SE 7。现在,让我们深入了解这个“疯狂”,正如你所说的......

所有这些都是相同的(当开发人员谈论 Java 进行开发时):

  • Java SE 7
  • Java SE v1.7.0
  • Java SE 开发工具包 7

从 Java v1.5 开始:

  • v5 = v1.5。
  • v6 = v1.6。
  • v7 = v1.7。

我们可以假设这将在未来的版本中保留。

接下来,对于开发者来说,下载 JDK,而不是 JRE。

JDK 将包含 JRE。如果需要 JDK 和 JRE,请获取 JDK。两者都将从单个 JDK 安装中安装,如下所示。

正如上面提到的:

  • JDK = Java 开发工具包(开发人员需要这个,如果你用 Java 编码,这就是你)
  • JRE = Java 运行时环境(用户需要这个,这是当今每个计算机用户)
  • Java SE = Java 标准版

这是我下载 Java 进行开发 (JDK) 所遵循的分步链接(一步通向下一步,这都是一次下载):

  1. 访问“Java SE 下载”:http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 单击“JDK 下载”并访问“Java SE Development Kit 7 下载”:http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html(请注意,点击第 1 步中的链接会将您带到不同的链接,因为 JDK 1.7 更新、更高版本现已推出)
  3. 接受协议 :)
  4. 点击“Java SE Development Kit 7 (Windows x64)”:http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-windows-x64.exe(适用于我的 64 位 Windows 7 系统)
  5. 您现在正在为您的系统下载(希望是最新的)JDK! :)

请记住,以上链接仅供参考,向您展示下载 JDK 所需的分步方法。

并使用默认设置安装到:

  • “C:\Program Files\Java\jdk1.7.0\”(JDK)
  • “C:\Program Files\Java\jre7\” (JRE)

请记住,上面提到的 JDK 包含 JRE,如果您知道它们都是什么,那么这是有道理的。再次,见上文。

安装后,仔细检查“C:\Program Files\Java”以查看这两个文件夹。现在您知道它们是什么以及它们存在的原因了。

我知道我是为新手写的,但我喜欢详细了解事情,所以我希望这会有所帮助。

【讨论】:

  • 这个答案需要提高:)
  • 我最近必须安装一个 jre 来运行其他安装程序之一,然后必须安装 32 位版本才能让其他安装程序之一工作。我最后使用的版本是 glassfish 4,它似乎仍然没有提供 javax.persistence。后来发现我需要 maven,你解压缩然后设置一些环境变量。真是一团糟!
  • 在我看来,Java SE 和 Java SDK 是同一个包。
【解决方案3】:

当您键入“java -version”时,您会看到三个版本号 - java 版本(我的版本是“1.6.0_07”)、Java SE 运行时环境版本(“build 1.6.0_07-b06”)和HotSpot 版本(我的是“build 10.0-b23, mixed mode"”)。我怀疑您看到的“11.0”是 HotSpot 版本。

更新:HotSpot 是(或曾经是,现在他们似乎用它来表示整个 VM)内置于 Java 虚拟机中的即时编译器。天知道为什么 Sun 给它一个单独的版本号。

【讨论】:

  • 那么,JVM 1.6 和 JVM 11.0 有什么区别呢?什么是热点?
  • 谢谢,这就是混淆 - 两个不同的版本号。
  • 其实 HotSpot 不是 JIT。 JIT 意味着编译发生在执行之前。 HotSpot 在编译/优化程序的选定部分之前首先使用解释来执行和分析代码。
【解决方案4】:

Java 版本的简短且可能不正确的历史

  • Java 是一个平台。它由两个产品组成——软件开发工具包和运行时环境。

  • 当 Java 首次发布时,它显然只是称为 Java。如果您是开发人员,您也知道版本,即普通的“1.0”和后来的“1.1”。作为平台一部分的两种产品也被命名:

    • JDK - “Java 开发工具包”
    • JRE - “Java 运行时环境”
  • 显然 1.2 版的变化如此重大,以至于他们开始将该平台称为 Java 2

    • 平台的默认“发行版”被赋予绰号“标准”,以与其兄弟姐妹进行对比。所以你有三个平台:

      • “Java 2 标准版 (J2SE)”
      • “Java 2 企业版 (J2EE)”
      • “Java 2 移动版 (J2ME)”
    • JDK 正式更名为“Java 2 Software Development Kit”。

  • 当 1.5 版问世时,西装决定他们需要“重新命名”产品。所以Java平台有两个版本——产品版本“5”和开发者版本“1.5”(是的,明确提到了规则——“去掉'1。')。但是,“2”被保留在名称。所以现在平台正式命名为“Java 2 Platform Standard Edition 5.0 (J2SE 5.0)”

    • 诉讼还意识到开发社区并没有接受他们对 JDK 的重命名。但他们并没有恢复他们的更改,而是决定从各个产品的名称中去掉“2”,现在变成 “J2SE Development Kit 5.0 (JDK 5.0)”” J2SE 运行时环境 5.0 (JRE 5.0)".
  • 当 1.6 版发布时,有人意识到名称中有两个数字很奇怪。所以他们决定完全删除 2(和“.0”后缀),我们最终得到包含 ”的 “Java Platform, Standard Edition 6 (Java SE 6)” Java SE 开发工具包 6 (JDK 6)”“Java SE 运行时环境 6 (JRE 6)”

  • 1.7 版没有做任何愚蠢的事情。如果我不得不猜测,下一个重大变化将是删除“SE”,这样循环就完成了,JDK 再次被称为“Java 开发工具包”。

注意事项

  • 为简单起见,省略了一堆商标标志。所以假设 Java™、JDK™ 和 JRE™。

  • SO 似乎无法呈现嵌套列表。

参考文献

结语

只需去掉“1”。来自javac -versionjava -version 打印的版本,你很高兴。

【讨论】:

  • 天哪。我以为只有微软才有疯狂的无家可归者编造产品名称。
  • 这太疯狂了。如果不每次都明确地查找它们,我永远无法理解这些。
【解决方案5】:

随着 Java 5 的发布,产品版本与开发人员版本不同,如 here 所述

版本 1.5.0 还是 5.0?

版本号“1.5.0”和“5.0”都用于标识 Java 2 平台标准版的这个版本。版本“5.0”是产品版本,而“1.5.0”是开发者版本。数字“5.0”用于更好地反映J2SE的成熟度、稳定性、可扩展性和安全性的水平。

平台和产品名称中使用的“版本 5.0”

5.0 版用于此表中给出的平台和产品名称:

Full Name Abbreviation
Platform name Java™ 2 Platform Standard Edition 5.0 J2SE™ 5.0
Products delivered under the platform J2SE™ Development Kit 5.0 JDK™ 5.0
J2SE™ Runtime Environment 5.0 JRE 5.0

开发者使用的“版本 1.5.0”

J2SE 还在某些仅对开发人员可见的地方或版本号由程序解析的地方保留版本号 1.5.0(或 1.5)。如前所述,1.5.0 指的是完全相同的平台和编号为 5.0 的产品。版本号 1.5.0 和 1.5 用于:

  • java -version(除其他信息外,返回 java 版本“1.5.0”)
  • java -fullversion(返回 java 完整版本“1.5.0-b64”)
  • javac -source 1.5(javac -source 5 也可以)
  • java.version 系统属性
  • java.vm.version 系统属性
  • @since 1.5 标签值
  • jdk1.5.0安装目录
  • jre1.5.0安装目录
  • http://java.sun.com/j2se/1.5.0 网站 (http://java.sun.com/j2se/5.0 也有效)

【讨论】:

    【解决方案6】:

    Java SE Runtime 是针对最终用户的,因此您需要 Java JRE 版本,Java 的第一个版本是 1,然后是 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6 等,通常每个版本都按版本命名,因此 JRE 6表示Java jre 1.6,反正有更新版本,比如1.6更新45,命名为java jre 6u45。

    据我所知,他们更喜欢使用数字 6 而不是使用 1.6,以更好地反映成熟度、稳定性、可扩展性、安全性等水平

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      相关资源
      最近更新 更多