Java JDK、SDK、SE?

Posted

技术标签:

【中文标题】Java JDK、SDK、SE?【英文标题】:Java JDK, SDK, SE? 【发布时间】:2012-06-07 03:53:12 【问题描述】:

如果您能回答这些问题或帮助我清楚一点,将不胜感激:


Java 7 只是 Java SE 7 吗? Java 6 是 Java SE 6 吗? Java SE 7 也是 Java JDK 7 吗?还有JDK是什么? 这是否意味着Java JDK与Java号(Java SE 7)相同? 什么是 java 1.5 和 1.6?以及它与 Java 编号 (Java SE...) 的对应关系如何? Java的SDK和JDK一样吗?

【问题讨论】:

【参考方案1】:

是的,这可能会令人困惑。

你没有要求,但我会从这里开始。 JVM 是 Java 虚拟机。它是一个程序,可以读取已编译的 Java 代码(.class 文件和 .jar 文件,它们只是包含一堆 .class 文件打包在一起的 .zip 文件)并执行它。 JVM 有很多,例如您需要一个用于 Windows 的 JVM,一个用于 Linux,一个用于 OSX 等,但也有许多替代 JVM,用于嵌入式设备的 JVM 等(许多人会不同意并说 JVM 只是一个,它是一个规范。但是,通常系统管理员会说“JVM”来指示服务器上运行的实际二进制文件)。

您也没有要求以下内容。 JRE 是 Java 运行时环境。它包括运行 Java 应用程序所需的一切,即 JVM 本身、标准库和一堆其他文件。标准库本身就非常重要,因为它包含了很多您在开发 Java 应用程序时会用到的有用的东西。它包含 java.* 包中的所有内容和 com.sun、com.oracle 包中的一些私有内容。

Java 的不同版本(1.0、1.1 等一直到 1.7,也称为 Java 7)通常都包含对 JVM 和标准库的改进,因此两者通常需要一起运行,并且被打包一起在 JRE 中。

如果您在计算机上运行任何 Java 程序,则说明您已安装 JRE。

JDK 是 Java 开发工具包。它包含 JRE 以及许多其他对开发 Java 应用程序有用的东西。这显然包括编译器(出于某种充分的原因,它也包含在 JRE 中,但您现在可以忽略这个事实)、用于创建 .jar 文件的 JAR 实用程序、许多用于“反编译”类文件的工具、检查 .jar 文件、重新包装它们,等等。

它通常还包含标准库的文档以及标准库的所有源代码,因为它们对开发人员阅读和检查很有用。如果你想认真开发Java应用程序,你需要JDK。

当谈到 JavaSE、JavaEE、JavaME 等时,这些都是所谓的“版本”。基本上,由于 Java 生态系统非常庞大,Sun 决定提供不同版本的 Java:

JavaSE:是标准版,通常非常适合客户端软件、普通应用程序等。 JavaME:是移动版,它是用于制作旧手机上的小游戏的,但它基本上是适用于容量极低的处理器的“较小”版本的 Java。 JavaEE:是“企业版”。它用于开发服务器端的东西,所以它包含了很多服务器端使用的库。

关于编号,他们搞砸了。实际上,在 Java 1.4 之后,他们创建了 JCP,让社区参与到 Java 本身的开发中,从 Java 1.5 开始,它被正式命名为“Java 5”,尽管业内大多数人都称它为 1.5。此外,Java 1.2 是 Java 2,但我认识的每个人都不是 working in Sun at that time always called it 1.2。

【讨论】:

当你下载 Java(比如 Java 7)时,它是否带有 JVM。 是的,JVM 是 JRE 的组件之一。 JDK 还包含 JRE。所以是的,你也将拥有 JVM。实际上,“JVM”(如这里所指,不是 JVM 规范,实际的二进制文件)是“java.exe”程序,它是您在启动 java 程序时看到的 DLL(或 java 命令和相关的 .so,如果您是在 *nix 或 osx 下) 非常感谢,真的解释了很多:) 确实很好的解释。谢谢。【参考方案2】:

Java 7 只是 Java SE 7 吗? Java 6 是 Java SE 6 吗?

是的。

有几个 Java“版本”,即 Java SE,“标准版”,Java EE,“企业版”和 Java ME,“微型版”。

“Java N”,其中 N 是某个数字,指的是 SE。 Java EE 有单独的版本号,现在最高为版本 6。 Java ME 也有自己的版本——目前是第 3 版。Java ME 适用于移动设备和小型设备。

Java EE 是一组库和接口,例如构建在 Java SE 之上的 EJB、JMS、JNDI、Servlets/JSP。

Java SE 7 也是 Java JDK 7 吗?还有JDK是什么?

JDK = Java 开发工具包。当您下载 Java 时,您可以获得仅允许您运行已编译的 Java 应用程序的 JRE(Java 运行时环境),或者您可以获得允许您编译和运行 Java 应用程序的 JDK。 Java SE 7 指的是 JDK 和 JRE。

这是否意味着java JDK与java编号相同(Java SE 7)?

是的。

什么是 java 1.5 和 1.6?以及它与 java 编号 (Java SE...) 的对应关系如何?

Sun 对 Java 的编号在中途发生了变化,有点令人困惑。他们从 1.0 到 1.1,然后是 1.2。然后他们决定将 1.2 称为“Java 2”,这个标签一直持续到 Java 1.4。然后 Java 5 被称为 1.5 和 5.0 并且一直持续 - Java 7 也是 Java 1.7,Java 6 也是 Java 1.6,等等。

Java的SDK和JDK一样吗?

是的。

【讨论】:

Java2 的名称适用于从 1.2 版到 java 1.4.2 的每个 Java 版本。【参考方案3】:

答案 1:SE 代表标准版。就像现在每个 JRE 都在标准版中一样,因此您可以将 Java 7 和 Java SE 7 视为同一个东西。

答案 2:JDK 代表 Java Development Toolkit。 Java SE 是技术,JDK 是用于开发该技术的工具集。

答案 3:技术上是的。实际上,您最有可能在“Java 6”旁边看到“JDK 1.6”,在“Java 7”旁边看到“JDK 1.7”等等。

答案 4:我猜与 3 相同。

答案 5:Java 的软件开发工具包等于 Java 的开发工具包,所以是的。

此图可能会有所帮助:

http://www.oracle.com/technetwork/java/javase/tech/index.html

【讨论】:

Java SE 代表标准版(与 EE 或企业版相对),而不是第二版。【参考方案4】:

SE = 标准版,java 的标准版,通常只命名为 java X。另一个版本是 EE,更面向组件。

JDK = java 开发工具包,这是用于开发 java 应用程序的 sdk 的子集,是一个框架。

版本号为1.7的命名为java 7,可以同时获取该版本的SE版本或SDK。

无论如何你都可以在***上找到全部信息

【讨论】:

以上是关于Java JDK、SDK、SE?的主要内容,如果未能解决你的问题,请参考以下文章

J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别(转载)

杂项-Java:JDK

JDK版本问题 发展史

jdk (Java Development Kit)

我的Java之旅 第一课 开发环境准备

请问Java SE EE ME等有啥区别?