如果您可以回答这些问题或帮助我更清楚一点,将不胜感激:
是的,这可能会令人困惑。
您没有要求,但我将从这里开始。JVM是Java虚拟机。它是一个程序,可以读取已编译的Java代码(.class文件和.jar文件,它们只是.zip文件,其中包含打包在一起的一堆.class文件),并执行该程序。JVM有很多,例如,您需要一个用于Windows的JVM,一个用于Linux的JVM,一个用于OSX的JVM等。但是也有很多替代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:
关于编号,他们搞砸了很多。实际上,在Java 1.4之后,他们创建了JCP,以使社区参与Java本身的开发,并且从Java 1.5开始,它被正式命名为“ Java 5”,尽管业内大多数人将其称为1.5。另外,Java 1.2是Java 2,但是我当时认识的所有不在Sun中工作的人都将其称为1.2。