Java JDK, SDK, SE?

2022-08-31 15:09:05

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


  • 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文件,这些文件只是.zip文件,其中包含一堆打包在一起的.class文件)并执行它。有许多JVM,例如,您需要一个用于Windows的JVM,一个用于Linux的JVM,一个用于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,但是我认识的当时不在Sun工作的人都总是称它为1.2


答案 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 Development Kit。当您下载Java时,您可以获得JRE(Java运行时环境),它只允许您运行已经编译的Java应用程序,或者您可以获得JDK,它允许您编译和运行Java应用程序。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一样吗?

是的。


推荐