所以,我一直认为位于java.exe
的{{1}}和jdk\bin
文件夹中的jdk\jre\bin
没有区别。显然,事实并非如此,当然不是java8。
我正在测试特立独行的ssh库,发现当使用java.exe
中的jdk\bin
时,它不会从sshd服务器提供的列表中自动协商加密密码。从jdk提供的jre(在jdk\jre\bin
文件夹中)更改用于此的java.exe,让测试应用程序正常工作。
那么...什么可以解释差异 - 为什么一个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比较两个...两个文件的开始和结束(更多)有一些差异。所有的二进制狼吞虎咽地对我说。
答案 0 :(得分:2)
重新使用该库并获得不同的结果,这几乎肯定与java.exe
无关,而是与JDK安装与JRE安装所使用的类路径和jar有关。
重新提供不同的文件,不仅仅是你:我在其上挖掘了一台带有(旧版本)Oracle Java8的Windows 8.1机器,它是同样的事情:尺寸,日期和版本匹配,内容不是相当。对于我的Linux机箱而言,这是不正确的,其中包含Oracle的Java8,其中jdk/bin/java
和jdk/jre/bin/java
文件是相同的(而不仅仅是符号链接)。我的猜测是它与优化默认值有关,但与您的ssh库问题无关。