12

I'm writing Java code that will run on an AIX server. I'd like to know the difference between IBM's JDK and Oracle's JDK, and if the JDKs have the same classes. Does the IBM JDK have all the classes present in the Oracle JDK?

Are there any IBM documents that describe the differences between the two JDKs?

Jordan Lewis
  • 16,900
  • 4
  • 29
  • 46
Matteo Codogno
  • 1,569
  • 6
  • 21
  • 36

3 Answers3

11

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

W. Smith
  • 131
  • 1
  • 7
4

I work in an environment where we use Java 1.6, deploying to Oracle (JRockit), IBM and Oracle/Sun JDKs.

The three are remarkably comapatible. Apart from the occasional difference (e.g. in JAXWS startup behaviour) we strike remarkably few problems.

There are no huge holes where one JDK is missing stuff that is in others.

kiwiron
  • 1,677
  • 11
  • 17
  • i will add, there are some differences related to encryption algorithms and such, which exist on one but not the other. found this the hard way on a mac! – Greg Aug 14 '15 at 17:59
1

I meet a big difference in the GBK encoding. The ibm jvm GBK is stand for the ibm936, but the openjdk or oracle jdk is the CP936. CP936 is the real GBK standard, as knowned the windows-936. So if you meed the strange GBK problems, you can see the IBM solutions

fartpig
  • 19
  • 4