JRE包含在JDK与独立JRE之间

JDK中包含的JRE(位于jre文件夹内)与独立JRE之间有什么区别? 有没有?

没有区别(除非您有不同版本的JRE)。 以下是SUN / Oracle的官方定义:

http://java.sun.com/javase/6/docs/technotes/guides/index.html

JRE和JDK Sun Microsystems在JavaTM平台标准版(JavaTM SE)系列中提供了两个主要的软件产品:

Java SE运行时环境(JRE)

JRE提供了运行以Java编程语言编写的applet和应用程序所必需的库,Java虚拟机和其他组件。 可以使用应用程序重新分发此运行时环境,使其独立。

Java SE开发工具包(JDK)

JDK包括JRE以及编译器和调试器等命令行开发工具,这些工具对于开发applet和应用程序是必要或有用的。

如果对独立JRE和JDK中包含的JRE运行二进制比较,则它们是二进制不同的(至少在Windows版本中)。

rt.jar中的类计数相等,但出于好奇,我在两个类中对所有类运行’javap’并比较结果。

我看到的唯一区别是JDK verison在类代码之前有类似’Compiled from“Serializable.java’的行。

我不认为这会对最终用户产生任何影响,因此这些JRE实际上应该以相同的方式运行。

差异是合法的。 JDK用于开发,JRE用于执行。 您可以在产品中加入JRE

“JDK”是Java Development Kit。 JDK是可用于开发基于Java的软件的软件包。 “JRE”是Java运行时环境。 JRE是实际执行Java程序的Java虚拟机的实现。

通常,每个JDK包含一个(或多个)JRE以及各种开发工具,如Java源代码编译器,捆绑和部署工具,调试器,开发库等。