Java JDK,SDK,SE?

Jac*_*dge 54 java sdk

我将学习java 7并做了一些研究,但似乎没有清楚地回答这些问题,如果你能回答这些问题或者帮助我一点点,我将不胜感激:


  • 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一样吗?

如果我错了,请告诉我.谢谢,杰克

Sim*_*nni 78

是的,这可能令人困惑.

你没有要求它,但我会从这里开始.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 Development Kit.它包含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.

  • 是的,JVM 是 JRE 的组件之一。JDK 还包含 JRE。所以是的,您还将拥有 JVM。实际上,“JVM”(此处的意图,不是 JVM 规范,实际的二进制文件)是“java.exe”程序,它是您在启动 java 程序时看到的 DLL(或 java 命令和相关的 .so,如果您是在 *nix 或 osx 下) (2认同)
  • 非常感谢,真的解释了很多:) (2认同)
  • 确实很棒的解释。谢谢。 (2认同)

quu*_*x00 20

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,Servlet/JSP.

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

JDK = Java开发工具包.下载Java时,您可以获得JRE(Java运行时环境),它只允许您运行已编译的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一样吗?

是.