服务器JRE和客户端JRE之间的区别

时间:2015-10-29 06:26:36

标签: java java-8 jdk1.6

我正在通过服务器jre,当我提取serverjre tar.gz时,它给了我jdk文件夹。为什么serverJRE给JDK这样的文件夹。 serverJRE里面还有JRE文件夹。那么使用哪一个,整个serverJRE或者只是在serverJRE里面的JRE文件夹。 ServerJRE中的JRE内容与JDK中的JRE相同。

我不了解其中的区别。

3 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:2)

来自Oracle's page

  

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

所以差异非常小。这也意味着Server JRE和JDK之间的区别似乎主要是JDK有一个编译器。我甚至没有意识到他们已经将JRE变成了单独的产品,但多年来我记不起有人向任何人建议客户JRE。

考虑到Applet几乎已经死了,我认为没有任何理由下载Client JRE。然后,我不再参与桌面Java的业务,所以谁知道。

答案 2 :(得分:0)

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

截至最新的季度更新,服务器内的根级目录jre gzipped" 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只是因为它包含更多" stuff"由于没有简单的方法来处理交互式应用程序的所有用例,因此我不想在以后找到我想要查找的内容。