【问题标题】:What is the need of JRE even though JDK contains JRE? [duplicate]即使JDK包含JRE,JRE的需求是什么? [复制]
【发布时间】:2018-02-12 22:51:40
【问题描述】:

对不起,如果这些是非常愚蠢的问题 bcz 我是 java 新手。 JDK内部包含JRE,如果它是一个独立的应用程序,那么JRE需要什么。

【问题讨论】:

  • 一个词:生产
  • 因为普通终端用户不需要JDK,只需要JRE。
  • JDK中有JRE的原因是很多SDK工具都是Java程序,需要JVM(JRE)来运行。
  • 当JDK bin 目录已经包含一个JRE 时,为什么JDK 安装包含一个单独的JRE 安装?是我的问题和补充,我开发了一个简单的 java 独立应用程序,如果类路径中同时存在 JDK 和 JRE,则工作正常,如果我删除 JRE,即使 JDK 内部包含 JRE 并且我正在运行,它也不起作用机器也是。
  • if i remove JRE it is not working,可能是因为卸载从PATH 环境变量中删除了二进制文件的路径。卸载所有Java,只安装JDK,它应该可以工作。

标签: java


【解决方案1】:

不是每个人都想构建 Java 应用程序(这是 JDK)。许多人只想运行它们(这是 JRE),例如获取 JAR 文件的最终用户。

例如:在我的国家,电报税是通过 Java 应用程序完成的。用户需要 JRE 来运行程序(他们可以在其中填写和提交表单),而不是整个 JDK。

编辑:根据 OP 的 cmets,真正的问题是为什么 JDK 包含一个额外的 JRE。我做了一些研究,发现Oracle's explanation

私有与公共 JRE

安装 JDK 还会安装私有 JRE 和可选的公共副本。

私有 JRE 是运行 JDK 中包含的工具所必需的。它没有注册表设置,完全包含在 jre 目录中(通常位于 C:\Program Files\jdk1.7.0\jre),其位置只有 JDK 知道。

另一方面,public JRE 可以被其他 Java 应用程序使用,包含在 JDK 之外(通常位于 C:\Program Files\Java\jre1.7.0),注册到Windows 注册表(位于 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft),可以使用“添加/删除程序”删除,可以在浏览器中注册,并且可以将 java.exe 文件复制到 Windows 系统目录(这将使其成为默认系统 Java平台)。

【讨论】:

  • 是的,先生绝对同意你的观点,但只是说我只开发了一个独立的应用程序,我只想使用这些情况,只有 JDK 就足够了?
  • JDK 包含 JRE
  • JDK 安装会询问您是否还要安装 JRE(默认为是)。但是,即使您拒绝,JDK bin 目录中仍然有一个 JRE,即使您没有实际安装 JRE,您仍然可以运行您的 Java 应用程序。那么将 JRE 与 JDK 一起安装有什么用呢? (我认为这就是 OP 想知道的?)
  • 也许有一个约定(在开发人员工具之外),JRE 应该位于“.../jre_VERSION/”目录中。
  • 我找到了 Oracle 的解释,请参阅我编辑的答案。
猜你喜欢
  • 2014-11-24
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2012-08-23
  • 1970-01-01
相关资源
最近更新 更多