IBM Java Runtime Environment

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search

Java SDK - IBM Developer

  • IBM SDK for Java v8 Vendor: IBM
  • OpenJDK+OpenJ9 v8 Vendor: Adopt
  • OpenJDK+HotSpot v8 Vendor: Adopt
  • Oracle Java SE v8 Vendor: Oracle

Difference

Credit to: W Smith posted forum here.

The biggest difference between the Oracle and IBM java runtimes is that they have independent Java Virtual Machine (JVM) and Just In Time (JIT) compiler implementations. IBM needed to build their own JVM and JIT that could run java programs on platforms such as z/OS (mainframes), AIX and Linux on Power processors, where other Java implementations would not run. The JVM and JIT are part of the Java runtime internals and they should not change how you write your Java programs. There are no documents listing the big differences between Oracle JDK and IBM, because the goal is to make them compatible. As others have said already, they are both implementing the same standard spec and Java API. That said, there is a lot of Java documentation from IBM, available at:

http://www.ibm.com/developerworks/java/jdk/docs.html

One area that could affect you as a programmer is that the IBM JRE has its own implementations of Security providers, which might need to be configured differently. These are documented in a Security Guide - the Java 8 version is here:

http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/introduction.html end of quote

Background: IBM / Oracle / GNU

IBM licensed Java stopped after version 8. IBM has a role as a customer of Oracle and as a contributor to the current OpenJDK work. That's the end of the story for today's IBM.

Oracle JDK was licensed under Oracle Binary Code License Agreement, whereas OpenJDK has the GNU General Public License.

Say JDK to refer to the Java SE (Standard Edition) Development Kit and realize that OpenJDK is a free and open-source implementation of the JDK. OpenJDK was first based on JDK 7 however since Java 10, the open-source reference implementation is by the JDK Project. The build process for the Oracle JDK is based on that of OpenJDK. Oracle and OpenJDK both utilize a 6-month release cycle.

Oracle JDK and OpenJDK are very close in stability and performance yet there are visible differences. Oracle JDK is much better regarding responsiveness and JVM performance. Oracle puts more focus on stability due to the importance it gives to enterprise customers, customers like IBM.

Oracle JDK is fully developed by Oracle Corporation whereas the OpenJDK is developed by Oracle, OpenJDK, and the Java Community. Oracle Corporation applies additional patches that are not open source or GNU licensed. This is part of the difference as some of the patches may improve stability.

Linux distributions such as Fedora, Ubuntu, Mint and Red Hat Enterprise Linux provide OpenJDK as the default Java SE implementation.

News: Oracle JDK and OpenJDK builds should essentially be identical from Java 11 onward due to license changes at Oracle. Oracle JDK 11 will continue to include installers, branding, and JRE packaging, whereas OpenJDK builds are currently available as zip and tar.gz files.

The output of the java –version and java -fullversion commands will distinguish Oracle's builds from OpenJDK builds.

Some Related Pages