Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务器JRE和客户端JRE之间的区别_Java_Java 8_Jdk1.6 - Fatal编程技术网

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

Java 服务器JRE和客户端JRE之间的区别,java,java-8,jdk1.6,Java,Java 8,Jdk1.6,我正在浏览服务器jre,当我提取serverjre tar.gz时,它给了我jdk文件夹。为什么serverJRE提供类似JDK的文件夹。serverJRE中也有JRE文件夹。那么使用哪一个,整个serverJRE还是serverJRE中的JRE文件夹。此外,serverJRE中的JRE内容与JDK中的JRE内容相同 我不理解其中的区别。服务器JRE:它用于在服务器上部署长时间运行的java应用程序。它提供尽可能快的运行速度。它经过特别微调,以最大化峰值运行速度。它有非常积极的算法来优化java

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


我不理解其中的区别。

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

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

来自

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

所以差别非常小。这也意味着服务器JRE和JDK之间的区别似乎主要在于JDK有一个编译器。我甚至没有意识到他们已经将JRE制作成了不同的产品,但是这些年来,我不记得有人向任何人推荐过客户端JRE


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

我认为人们不明白OP是从哪里来的,我只是遇到了这个问题。下面是一些详细的上下文

截至最新的季度更新,“p22187044_17095_Linux-x86-64.zip”中的服务器jre gzip tar ball中的根目录是“jdk1.7.0_95”

依我看,甲骨文的这一点太草率了。如果您需要同时使用这两个文件并尝试在同一目录中提取它们,那么您将把它们都提取到同一目录中

$ 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只是因为它包含了更多的“东西”,我不想在以后的某个时候发现这些东西是需要的,因为没有简单的方法来练习交互式应用程序的所有用例

同意……但是为什么serverJRE是JDK呢。当我提取“serverjre.tar.gz”时,它给了我一个名为“jdk”的文件夹。我认为serverjre文件安装在jdk目录中,这就是为什么您的文件夹名为“.jdk”。只要检查一下你的安装目录就可以了。很多时候,服务器会安装web应用程序,包含JSP,或者类似的程序,需要JDK来编译。开尔文,我不是说安装。我刚刚额外提取了serverjre.tar.gzn,它给了我一个名为jdk的文件夹。它的层次结构与简单的jdkso kayaman完全相同,您是使用整个serverJRE还是只使用serverJRE中的JRE文件夹。因为两者都能完成这项工作。我通常在服务器上安装JDK,因为我希望所有可能的工具都可用,以防出现问题,我需要在晚上醒来修复它。我总是建议安装JDK,因为这样,用户就不会冒安装垃圾软件(询问工具栏等)的风险。这应该是足够的理由。除此之外,对于64位,无论如何都没有客户机JVM,因此没有技术上的差异……您在标签中提到了Java6和Java8。你在说什么?你说的是哪一个tar.gz文件?您下载的文件的完整文件名是什么?没有说明jdk1.8的标记,所以我使用了java8。顺便说一句,我并没有因为java的版本而生气。我的问题不同。@Tunaki我可以建议添加第二个副本吗?当前副本解释了两者之间的差异,但不是OP询问的文件夹结构。我不同意第一个副本的答案。这个问题是关于安装“服务器JRE”和“JRE”之间的区别,而不是关于运行java-Server@Stijn提出了一个更接近的答案,但问题是从另一个角度提出的。Oracle从他们的下载页面指向这篇博文,以澄清为什么服务器JRE:。如果我能补充一个答案,我会总结他们的深度帖子。