【问题标题】:Difference between server JRE and client JRE [duplicate]服务器JRE和客户端JRE之间的区别[重复]
【发布时间】:2016-01-29 04:27:03
【问题描述】:

我正在浏览服务器 jre,当我提取 serverjre tar.gz 时,它给了我 jdk 文件夹。为什么 serverJRE 给 JDK like 文件夹。 serverJRE 内也有 JRE 文件夹。那么使用哪一个,整个 serverJRE 或只是 serverJRE 内的 JRE 文件夹。 serverJRE 中的 JRE 内容也与 JDK 中的 JRE 相同。

我不明白其中的区别。

【问题讨论】:

  • 您在标签中提到了 java 6 和 java 8。你在说哪个?你在说哪个 tar.gz 文件?您下载的文件的完整文件名是什么?
  • 没有标签说明 jdk1.8,所以我使用了 java 8。顺便说一句,我对 java 的版本不感兴趣。我的问题不同。
  • @Tunaki 我可以建议添加stackoverflow.com/questions/21057365/… 作为第二个副本吗?当前的副本解释了两者之间的差异,但没有解释 OP 询问的文件夹结构。
  • 我不同意第一个重复的答案。这个问题是关于安装“Server JRE”和“JRE”之间的区别,而不是关于运行 java -server。 @Stijn 提出了一个更接近的答案,但这个问题是从不同的角度提出的。
  • Oracle 从他们的下载页面指向这篇博文,以阐明为什么 Server JRE: blogs.oracle.com/java-platform-group/… 。如果我可以添加答案,我会总结他们的深入帖子。

标签: java java-8 jdk1.6


【解决方案1】:

我认为人们不了解 OP 的来源,我只是遇到了这个问题。以下是一些详细的上下文。

截至最新一季度更新服务器内的根级目录 jre gzipped tar ball 内的“p22187044_17095_Linux-x86-64.zip”为“jdk1.7.0_95”

IMO,这是甲骨文的草率。如果您需要同时使用两者并尝试将它们提取到同一目录中,那么您将两者都提取到同一目录中。

$ unzip p22187044_17095_Linux-x86-64.zip server-jre-7u95-linux-x64.tar.gz
$ tar xzvf server-jre-7u95-linux-x64.tar.gz
# Extracted files with top-level directory: "jdk1.7.0_95"
# This polluted my previously extracted JDK (See differences below).

# Get a clean JDK 7 again:
$ rm -rf jdk1.7.0_95/

$ tar xzvf jdk-7u95-linux-x64.tar.gz

# Try again with the JRE; this time creating a container directory for the tar extraction:
$ mkdir jre1.7.0_95   &&   tar  xzvf server-jre-7u95-linux-x64.tar.gz -C jre1.7.0_95/
# Directory "jre1.7.0_95/" contains top-level directory "jdk1.7.0_95"

# Let's look at the differences:
$ diff -qr  jdk1.7.0_95     jre1.7.0_95/jdk1.7.0_95/

Only in jdk1.7.0_95/bin: ControlPanel
Only in jdk1.7.0_95/bin: javaws
Only in jdk1.7.0_95/bin: jcontrol
Only in jdk1.7.0_95/bin: jmc
Only in jdk1.7.0_95/bin: jmc.ini
Only in jdk1.7.0_95/jre/bin: ControlPanel
Only in jdk1.7.0_95/jre/bin: java_vm
Only in jdk1.7.0_95/jre/bin: javaws
Only in jdk1.7.0_95/jre/bin: jcontrol
Only in jdk1.7.0_95/jre/lib/amd64: libdeploy.so
Only in jdk1.7.0_95/jre/lib/amd64: libjavaplugin_jni.so
Only in jdk1.7.0_95/jre/lib/amd64: libnpjp2.so
Files jdk1.7.0_95/jre/lib/charsets.jar and jre1.7.0_95/jdk1.7.0_95/jre/lib/charsets.jar differ
Only in jdk1.7.0_95/jre/lib: deploy
Only in jdk1.7.0_95/jre/lib: deploy.jar
Only in jdk1.7.0_95/jre/lib: desktop
Files jdk1.7.0_95/jre/lib/ext/localedata.jar and jre1.7.0_95/jdk1.7.0_95/jre/lib/ext/localedata.jar differ
Only in jdk1.7.0_95/jre/lib/images: icons
Only in jdk1.7.0_95/jre/lib: javaws.jar
Files jdk1.7.0_95/jre/lib/jfxrt.jar and jre1.7.0_95/jdk1.7.0_95/jre/lib/jfxrt.jar differ
Files jdk1.7.0_95/jre/lib/jsse.jar and jre1.7.0_95/jdk1.7.0_95/jre/lib/jsse.jar differ
Only in jdk1.7.0_95/jre/lib: locale
Only in jdk1.7.0_95/jre/lib: plugin.jar
Files jdk1.7.0_95/jre/lib/rt.jar and jre1.7.0_95/jdk1.7.0_95/jre/lib/rt.jar differ
Only in jdk1.7.0_95/jre/lib/security: javaws.policy
Only in jdk1.7.0_95/jre: plugin
Only in jdk1.7.0_95/lib: missioncontrol
Files jdk1.7.0_95/lib/tools.jar and jre1.7.0_95/jdk1.7.0_95/lib/tools.jar differ
Only in jdk1.7.0_95/man/ja/man1: javaws.1
Only in jdk1.7.0_95/man/ja_JP.UTF-8/man1: javaws.1
Only in jdk1.7.0_95/man/man1: javaws.1

# And the size of each:
$ du -sh jdk1.7.0_95/   jre1.7.0_95/jdk1.7.0_95/

301M    jdk1.7.0_95/
235M    jre1.7.0_95/jdk1.7.0_95/

到底应该使用哪个取决于您的应用程序。对于供应商应用程序。我通常会参考他们的建议。如果没有,我使用 JDK 只是因为它包含更多我不想在以后发现需要的“东西”,因为没有简单的方法来练习交互式应用程序的所有用例。

【讨论】:

    【解决方案2】:

    来自Oracle's page

    Server JRE 包括用于 JVM 监控的工具和常用工具 服务器应用程序需要,但不包括浏览器 集成(Java 插件)。

    所以差异非常小。这也意味着 Server JRE 和 JDK 之间的区别似乎主要在于 JDK 有一个编译器。我什至没有意识到他们已经将 JRE 制成了单独的产品,但多年来我不记得有人曾向任何人推荐过 Client JRE。

    考虑到 Applet 几乎已死,我看不出有什么好的理由下载客户端 JRE。再说一次,我不从事桌面 Java 业务,所以谁知道呢。

    【讨论】:

    • 所以 kayaman,你会使用整个 serverJRE 还是只使用 serverJRE 中的 JRE 文件夹。因为两者都能胜任。
    • 我通常在服务器上安装 JDK,因为我希望所有可能的工具都可用,以防万一出现问题,我需要在晚上醒来修复它。
    • 我总是推荐安装 JDK,因为这样用户就不会冒安装垃圾软件(询问工具栏等)的风险。这应该是足够的理由。除此之外,对于 64 位,无论如何都没有客户端 JVM,因此引擎盖下没有技术差异……
    【解决方案3】:

    Server JRE: 用于在服务器上部署长时间运行的 java 应用程序。它提供了最快的运行速度。它经过专门微调,以最大限度地提高峰值运行速度。它具有高度激进的算法来优化 java 应用程序的运行时性能。它还包括各种监控工具。

    客户端 JRE: 用于在最终用户系统上运行 java 应用程序。它包含运行 Java 应用程序的所有内容。它可以更快地启动并且需要更小的内存占用。

    【讨论】:

    • 同意...但是为什么 serverJRE 以 JDK 的形式出现。当我提取“serverjre.tar.gz”时,它给了我一个名为“jdk”的文件夹。
    • 我认为 serverJRE 文件安装在 JDK 目录中,这就是为什么您的文件夹名为“.jdk”。只需检查您的安装目录即可。
    • 很多时候服务器会安装 Web 应用程序,包含 JSP 或需要编译 JDK 的类似应用程序。
    • kelvin,我不是在谈论安装。我只是在提取时额外提取了 serverjre.tar.gz n,它给了我一个名为 jdk 的文件夹。与简单 jdk 具有完全相同的层次结构
    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 2014-11-24
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多