Java JDK优于JRE的优点

时间:2016-03-31 12:23:35

标签: java tomcat

有人能够总结在服务器环境(即Tomcat)中使用Oracle Java JDK而不是JRE的所有优势吗?使用我喜欢的搜索引擎,我只能找到部分自相矛盾的片段。

2 个答案:

答案 0 :(得分:1)

我对这种情况的总体评估是,我们从这些软件包(JDK,JRE)获得的内容由包装团队决定。在某种程度上,它是任意的。让我们看看如何在Ubuntu系统上使用OpenJDK 7软件包:

➜  ~  ls /usr/lib/jvm/java-7-openjdk-amd64/jre/bin
java  keytool  orbd  pack200  policytool  rmid  
rmiregistry  servertool  tnameserv  unpack200
➜  ~  ls /usr/lib/jvm/java-7-openjdk-amd64/bin    
appletviewer  idlj       java     javah         jcmd      jhat   jps         
jstack  keytool       pack200     rmid         serialver   unpack200  
xjc apt           jar        javac    javap         jconsole  jinfo  
jrunscript  jstat   native2ascii  policytool  rmiregistry  servertool  
wsgen extcheck      jarsigner  javadoc  java-rmi.cgi  jdb       jmap   
jsadebugd   jstatd  orbd          rmic        schemagen    tnameserv    
wsimport

第一个位置是因为包openjdk-7-jre(Java运行时环境),而第二个位置是因为openjdk-7-jdk(Java Development Kit)包。第二个列表中的java实际上是第一个列表中java文件的符号链接。

因此,您可以看到JDK团队认为JRE和JDK之间的区别在于比较您作为这些软件包的一部分获得的程序(可执行文件)。

很长一段时间以来,我对选择这些软件包中的程序感到困惑。例如,当我只安装JRE时,我总是错过了jpsjstackjhatjmap等优秀的可维护性工具。这些工具非常可用于诊断Java运行时,但它们是JRE的一部分。为了获得这些工具,必须安装JDK,而不是莫名其妙。像其他人指出的那样,javac,Java编译器肯定属于JDK。

一般来说,我得出的结论是,除非存在一些空间问题,否则应该在目标系统上安装JDK(超集)而不是JRE。

答案 1 :(得分:0)

Tomcat有一个捆绑的java编译器,所以它只适用于JRE。你服务器上的东西越少,你就越安全。