天天看點

What is the difference between Oracle's Open JDK and its commercial JDK

Although we have stated the goal to have OpenJDK and Oracle JDK binaries be as close to each other as possible there remains, at least for JDK 11, several differences between the two options.

The current differences are:

  • Only Oracle JDK offers Solaris, only OpenJDK offers Alpine Linux.
  • Oracle JDK offers “installers” (msi, rpm, deb, etc.) which not only place the JDK binaries in your system but also contain update rules and in some cases handle some common configurations like set common environmental variables (such as, JAVA_HOME in Windows) and establish file associations (such as, use java to launch .jar files). OpenJDK is offered only as compressed archive (tar.gz or .zip).
  • javac —release for release values 9 and 10 behave differently. Oracle JDK binaries include APIs that were not added to OpenJDK binaries like javafx, resource management, and (pre JDK 11 changes) JFR APIs.
  • Oracle JDK offers “JDK” and “JRE”. OpenJDK offers only “JDK”.
  • Usage Logging is only available in Oracle JDK.
  • OpenJDK will (continue to) throw an error and halt if the -XX:+UnlockCommercialFeatures flag is used. Oracle JDK no longer requires the flag and will print a warning but continue execution if used.

-Oracle JDK requires that third party cryptographic providers be signed with an Oracle-provided certificate. OpenJDK will continue allowing the use of unsigned third party crypto providers.

-The output of java -version will be different. Oracle JDK will say java and include LTS. OpenJDK (when produced by Oracle) will say OpenJDK and not include the Oracle-specific LTS identifier.

  • Oracle JDK will be released under OTN License. Any License file will need to point to OTN. OpenJDK will be released under GPLv2wCP and will include the GPL license.
  • Oracle JDK will distribute FreeType under the FreeType license and OpenJDK will do so under GPLv2. The contents of \legal\java.desktop\freetype.md will therefore be different.
  • Oracle JDK has Java cup and steam icons and OpenJDK has Duke icons.
  • Oracle JDK source code includes “ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.” and OpenJDK source includes the GPL.
https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html