是的,它可能会造成混淆。
你没有要求它,但我会从这里开始。 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生态系统是巨大的,太阳决定提供的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程序在* nix或osx下) –
非常感谢,它真的很多解释:) –