【问题标题】:Oracle's Server JRE Contains JDK?Oracle 的服务器 JRE 包含 JDK?
【发布时间】:2014-01-11 01:21:35
【问题描述】:

我刚刚下载了 Oracle 的 Java SE 7 服务器 JRE (link) 我下载的文件是 server-jre-7u45-linux-x64.tar.gz。当我提取这个文件时,我惊讶地发现创建了一个名为 jdk1.7.0_45 的目录,其中包含完整的 java JDK。不是我对 JRE 安装的期望。这里发生了什么?

【问题讨论】:

  • 嗯,它包括javac吗?
  • 我仔细检查了,你也这样做了!哇。你运行的是什么版本的 Linux?您也许可以为您的发行版获得重新打包的版本。
  • @ElliottFrisch 奇怪,对吧?它是 SLES 11 SP3。

标签: java jvm-hotspot


【解决方案1】:

答案在父页面的包描述中:

JDK:(Java 开发工具包)。对于 Java 开发人员。包括完整的 JRE 以及用于开发、调试和监控 Java 应用程序的工具。

Server JRE:(Server Java Runtime Environment)用于在服务器上部署 Java 应用程序。包括用于 JVM 监控的工具和服务器应用程序通常需要的工具,但不包括浏览器集成(Java 插件)、自动更新或安装程序。

JRE:(Java 运行时环境)。涵盖大多数最终用户的需求。包含在您的系统上运行 Java 应用程序所需的一切。

在服务器 JRE 案例中,“服务器应用程序通常需要的工具” 包括 一些 JDK 工具。例如,Web 容器(如 Tomcat)需要将 JSP 转换为已编译的 Java servlet,这需要一个可调用的 Java 编译器。

IMO,使用服务器 JRE 的好处在于它不包括在内;即 Java 插件,这是一个安全噩梦(!)和不利于生产服务稳定性的自动更新。

【讨论】:

  • 服务器 JRE 中重复的二进制文件可能更好地作为堆栈溢出的新问题来解决,其中一个更令人困惑的方面是。我了解在与主要 JRE 二进制文件“jre/bin”不同的目录“bin”中拥有“服务器应用程序通常需要的工具”。我不明白在两个目录中复制像“java”和“keytool”这样的二进制文件。任何人都知道他们为什么这样做,而不是不这样做或至少对它们进行符号链接?它们在功能上有什么不同吗?他们的 md5sum 会显示“否”。
  • 你需要问“他们”。但是,符号链接可能会破坏(写得不好)脚本;例如在依赖于 JRE 的第三方应用程序中。我不认为它们在功能上有所不同。
  • 他们现在有一篇很棒的博客文章,其中包含涵盖其中一些主题的常见问题解答。我只是不确定如何在不复制整个帖子的情况下将其混合到这个答案中。 blogs.oracle.com/java-platform-group/…
猜你喜欢
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
相关资源
最近更新 更多