Red hat provides the Red Hat OpenJDK 8 for Windows for development use only (registration required). AdoptOpenJDK provides OpenJDK 8 builds for Windows (AdoptOpenJDK 8 Windows) without any restrictions.
Is there any technical difference between the two packages when using the same version/update(e.g. 8u181)? With "technical difference" I mean missing classes/functions, different default JVM settings, etc.
Red Hat provides OpenJDK 8 Windows binaries under exactly the same license as AdoptOpenJDK and any other open-source OpenJDK 8 build - under the GNU GPL v. 2 with classpath exception. All the restrictions about the "development use" are related only to the subscription (support) that can be purchased from Red Hat.
Technical differences between Red Hat OpenJDK 8 for Windows and other mentioned builds are pretty minor, as all these builds pass TCK. Generally Red Hat builds are trying to stay as close as possible in behaviour to OpenJDK 8 package that is included in RHEL and CentOS.
Differences:
RH OpenJDK 8 build is done from the sources of OpenJDK RPM package that is used on RHEL/CentOS. These sources are generally very close to upstream sources, but contain some changes (see points below) and may include some bugfixes (RPM patches) ahead of time. RHEL/CentOS changes can be tracked in a publicly-available repo for CentOS RPM
RH OpenJDK 8 includes Shenandoah garbage collector
RH OpenJDK 8 uses sources from RHEL/CentOS for dependency libraries (zlib, giflib, libjpeg-turbo, libpng, nss) instead of the (partial) sources of these libraries that are included in-tree in upstream jdk sources
Elliptic Crypto implementation in RH OpenJDK 8 includes only 3 most popular elliptic curves - NIST P-256, NIST P-384 and NIST P-521.
RH OpenJDK 8 uses the set of root CA certificates from RHEL/CentOS
RH OpenJDK 8 may use slightly newer timezone data - it is taken from RHEL/CentOS
RH OpenJDK 8 includes all Java sources code inside the src.zip file (that is used by IDEs to allow browsing jdk code), in upstream build substantial part of these sources is not included
RH OpenJDK 8 does not include demos and samples
RH OpenJDK 8 includes a set of font files
all native binaries in RH OpenJDK 8 are signed by RH certificate
RH OpenJDK 8 installer includes a JavaFX implementation
RH OpenJDK 8 installer includes a WebStart implementation
Source: I work on OpenJDK Windows builds at RH.
The main difference in AdoptOpenJDK I found is that you can choose from 2 different VM implementations, either the HotSpot which I found has similar slow performance than Oracle's implementation or the much more efficient Eclipse Open J9 jvm implementation which is based on former IBM SDK 8 which is now open sourced. To confirm I have an Eclipse Maven project which compiles slow in Oracle's JVM implementation.
- AdoptOpenJDK Eclipse Open J9 - 1 minute
- IBM SDK 8 (commercial license) - 1 minute
- AdoptOpenJDK OpenJDK8 with HotSpot - 7 minutes
- Oracle Java HotSpot(TM) (build 1.8.0_181-b13) - 11 minutes
So I think open sourcing Oracle's JVM gave some better results than Oracle's commercial JVM, however open sourcing IBM's JDK with Open J9 is much better and performance is 1 order of magnitude faster in compilation time (for my project).
This does not look true that redhat provided openjdk distribution can be used in production without subscription.
https://developers.redhat.com/products/openjdk/download/ So this page says correctly its only for development use only. Source: https://access.redhat.com/solutions/3116731
来源:https://stackoverflow.com/questions/52202807/technical-difference-between-adoptopenjdk-and-red-hat-openjdk-for-windows