jdk/bin/java与jdk/jre/bin/java的区别
本周进行了一些测试,我发现了这种情况: 当我使用jdk/jre/bin/java中的java可执行文件运行tomcat时,性能要比使用jdk/bin/java时好得多。jdk/bin/java与jdk/jre/bin/java的区别,java,jvm,Java,Jvm,本周进行了一些测试,我发现了这种情况: 当我使用jdk/jre/bin/java中的java可执行文件运行tomcat时,性能要比使用jdk/bin/java时好得多。 问题是:有人知道为什么jdk包提供了2个java可执行文件,以及它们之间的差异是什么,从而证明了性能差异?java.exe文件实际上是相同的。JDK是Java开发工具包,它包括开发应用程序所需的所有Java可执行文件 JRE是Java运行时环境,其中包括运行Java应用程序所需的内容 因此,要在部署模式下运行应用程序,您只需要J
问题是:有人知道为什么jdk包提供了2个java可执行文件,以及它们之间的差异是什么,从而证明了性能差异?java.exe文件实际上是相同的。JDK是Java开发工具包,它包括开发应用程序所需的所有Java可执行文件 JRE是Java运行时环境,其中包括运行Java应用程序所需的内容
因此,要在部署模式下运行应用程序,您只需要JRE,因为最终用户可能只有JRE而没有JDK。我迟到了,但是。。。我来这里是为了寻找OpenJDK中几个
java
变体之间的差异。最后,我只对问题的“它们之间有什么区别”部分作了一些澄清和补充问题;希望对你有帮助
在OpenJDK(我使用的是OpenJDK 1.7.0)基本目录中,我看到三个java
s,它们都具有不同的哈希和:
,二进制bin/java
,二进制;假设ABRT是jre-abrt/bin/java
,一个shell脚本,它以两种不同的方式之一执行jre/bin/java
变体(详见下文)jre abrt/bin/java
exec
'djava
命令?)。脚本检查ABRT共享对象文件是否存在,如果存在,它将通过.so
和ABRT=on
。再一次,这看起来应该是更多的工作。。。假设使用ABRT
如果您仍然对本主题感兴趣,也许您会对以下内容感兴趣:
- 您在脚本中采用的路径(检查
或/usr/lib64/libabrt java connector.so
脚本中的任何内容)jre/bin/java
- 如果直接执行第三个变量(
),速度会更快jre abrt/bin/java
- 在这两种情况下还涉及到了什么——比如
或inotify
或其他什么,但对于这样的服务来说,这可能是巨大的strace