私有 jre 和公共 jre 有什么区别?有没有关于这个话题的官方论文?
我没有找到关于这个主题的任何问题。我也无法在周围找到令人满意的东西。
JRE 只不过是一个文件夹,其中包含 JVM 可执行文件、设置文件、所需的 lib 文件和扩展。您可以在您的系统上安装多个 JRE,Sun 通常将版本安装在 C:\Program Files\Java 作为 jre,例如.jre1.6.0_06。
公共 JRE 可用于所有 Java 程序、浏览器,并且此 JRE 文件夹中的库可用于在命令行中启动的应用程序,例如 java com.sarathonline.cli.HelloWorld 此 JRE 也在路径和浏览器插件中注册。
Private JRE 是安装在系统中但默认情况下不引用的东西。这可能是来自另一个安装目录的 JRE/JDK 文件夹的副本。如果您看到我之前的一篇文章:使用 jre 1.6 启动 eclipse,而您的环境位于 1.4 中,则 JRE1.6 仅由 Eclipse 使用,这是一个私有 JRE。而 JAVA_HOME 指向 1.4。这是一个公共 JRE。
来源:
http://blog.sarathonline.com/2008/07/public-and-private-jre.html
关于该主题的更多讨论:
http://www.velocityreviews.com/forums/t649860-private-vs-public-jre-in-different-oss.html
来自 Oracle的官方回答:
私有与公共 JRE
安装 JDK 还会安装私有 JRE 和可选的公共副本。需要私有 JRE 才能运行 JDK 中包含的工具。它没有注册表设置,完全包含在 jre 目录中(通常位于 C:\Program Files\jdk1.8.0\jre),其位置只有 JDK 知道。另一方面,公共 JRE 可以被其他 Java 应用程序使用,包含在 JDK 之外(通常在 C:\Program Files\Java\jre1.8.0),在 Windows 注册表中注册(在 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft ),可以使用“添加/删除程序”删除,可以在浏览器中注册,并且可以将 java.exe 文件复制到 Windows 系统目录(这将使其成为默认的系统 Java 平台)。
答案很简单:如果用户想要运行任何 Java,他们将使用公共 JRE。如果显式执行该 Java 二进制文件(例如在 Windows 上:“C:\Programs\Java\MyJava\bin\java.exe”),私有 JRE 是一种可以使用的不同安装。
Private JRE ->Private JRE 用于在公共和私有 JRE 都可用且安装位置由用户定义时编译 Java 应用程序。
公共 JRE -> 公共 JRE 用于在公共和私有 JRE 都可用时执行 Java 应用程序....如果私有 JRE 不可用,则编译和执行过程都将由公共 JRE 完成。