简体   繁体   中英

What is the java.exe difference from jdk to (included) jre?

So, I had always thought there was no difference between the java.exe located in the jdk\\bin and that in the jdk\\jre\\bin folders. Apparently, that is not the case, certainly not with java8 anyway.

I was testing the maverick ssh library and found that it would not auto-negotiate an encryption cipher from the list offered by the sshd server when using the java.exe from jdk\\bin . Changing the java.exe used to that from the jre supplied with jdk (in the jdk\\jre\\bin folder) let the test app work fine.

So... what could possibly explain the difference - why would one java.exe work and the other not, if they are both the same?

They appear the same on the surface:

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

But must be different under the hood:

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

EDIT :

I did review the question which is suggested as a duplicate, however it did not address my question.

The versions of the binaries appear the same:

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)

I did not adjust the classpath or anything else on my commandline, other than the path to java.exe.

Compared the two using WinMerge... there are a few diffs nr the start and end (moreso) of the two files. All binary gobble-de-gook to me.

在此输入图像描述

Re using that library and getting different results, that's almost certainly not anything to do with java.exe , but something to do with the classpath and jars used by the JDK install vs. the JRE install.

Re your different files, it's not just you: I dug up a Windows 8.1 machine with (an old copy of) Oracle's Java8 on it, and it's the same thing: Sizes, dates, and versions match, contents don't quite . This isn't true of my Linux box with Oracle's Java8 on it, where the jdk/bin/java and jdk/jre/bin/java files are identical (and not just symlinked). My guess is it relates to optimization defaults, but doesn't relate to your ssh library issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM