gpt4 book ai didi

java - 从jdk到(包含)jre的java.exe有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 03:22:09 25 4
gpt4 key购买 nike

所以,我一直认为jdk\bin中的java.exejdk\jre\bin中的没有区别 文件夹。显然,情况并非如此,无论如何肯定不是 java8。

我正在测试特立独行的 ssh 库,发现当使用 jdk\bin 中的 java.exe 时,它不会从 sshd 服务器提供的列表中自动协商加密密码。将使用的 java.exe 更改为 jdk 提供的 jre(在 jdk\jre\bin 文件夹中)让测试应用程序正常工作。

那么...有什么可能解释差异 - 为什么一个 java.exe 可以工作而另一个不能工作,如果它们是一样的?

它们在表面上看起来是一样的:

C:\Program Files\Java\jdk1.8.0_20>dir bin\java.exe

08/22/2014 03:35 PM 190,856 java.exe

C:\Program Files\Java\jdk1.8.0_20>dir jre\bin\java.exe

08/22/2014 03:35 PM 190,856 java.exe

但在底层一定是不同的:

C:\Program Files\Java\jdk1.8.0_20>diff bin\java.exe jre\bin\java.exe
Files bin\java.exe and jre\bin\java.exe differ

编辑:

我确实查看了建议重复的问题,但它没有解决我的问题。

二进制文件的版本看起来相同:

C:\Program Files\Java\jdk1.8.0_20>bin\java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

C:\Program Files\Java\jdk1.8.0_20>jre\bin\java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

除了 java.exe 的路径之外,我没有在命令行上调整类路径或任何其他内容。

使用 WinMerge 比较这两个文件...这两个文件的开头和结尾(更多)存在一些差异。对我来说,所有的二进制代码都是乱七八糟的。

enter image description here

最佳答案

重新使用该库并得到不同的结果,这几乎肯定与 java.exe 无关,而是与 JDK 安装与 JRE 安装使用的类路径和 jar 有关.

关于你的不同文件,不仅仅是你:我挖出了一台装有 Oracle Java8(旧副本)的 Windows 8.1 机器,结果是一样的:大小、日期和版本匹配,内容不匹配相当。我的装有 Oracle Java8 的 Linux 机器不是这样,其中 jdk/bin/javajdk/jre/bin/java 文件是相同的(而且不是只是符号链接(symbolic link))。我的猜测是它与优化默认值有关,但与您的 ssh 库问题无关。

关于java - 从jdk到(包含)jre的java.exe有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com