Home » Java » Differences between Oracle JDK and Open JDK and garbage collection

Differences between Oracle JDK and Open JDK and garbage collection

Posted by: admin November 2, 2017 Leave a comment

Questions:

Are there any crucial differences between Oracle and Open JDK?

For example are the garbage collection and other JVM parameters the same?

Does GC work differently between the two?

Answers:

Both openjdk and oracle jdk are created and maintained currently by Oracle only.

openjdk and oracle jdk are implementations of same Java specification passed the TCK(Java Technology Certification Kit).

Most of the vendors of JDK are written on top of openjdk by doing few tweaks to [Mostly to replace licensed proprietary parts / replace with more performant items that only work on specific OS] components without breaking the TCK compatibility.

Many vendors implemented Java specification and got TCK passed. For example IBM J9 , Azul Zulu , Azul Zing , Oracle JDK.

Almost every existing JDK is derived from openjdk.

As suggested by many, licensing is a change between JDK’s.

Ref: https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#Proprietary_implementations

Questions:
Answers:

Nothing crucial. The openjdk project is mostly based on hotspot source code donated by Sun.

Moreover, openjdk was selected to be the reference implementation for java 7, and is maintained by Oracle engineers.

There’s a more detailed answer to your question here, which links to this blog post:

Q: What is the difference between the source code found in the OpenJDK
repository, and the code you use to build the Oracle JDK?

A: It is very close – our build process for Oracle JDK releases builds
on OpenJDK 7 by adding just a couple of pieces, like the deployment code,
which includes Oracle’s implementation of the Java Plugin and Java
WebStart, as well as some closed source third party components like a
graphics rasterizer, some open source third party components, like
Rhino, and a few bits and pieces here and there, like additional
documentation or third party fonts. Moving forward, our intent is to
open source all pieces of the Oracle JDK except those that we consider
commercial features such as JRockit Mission Control (not yet available
in Oracle JDK), and replace encumbered third party components with
open source alternatives to achieve closer parity between the code
bases.

Questions:
Answers:

Oracle JDK vs OpenJDK

-OpenJDK is an open source implementation of the Java Standard Edition platform with contribution from Oracle and open Java community.

-OpenJDK is released under license GPL v2 wherein Oracle JDK is licensed under Oracle Binary Code License Agreement.

  • Actually, Oracle JDK’s build process builds from OpenJDK source code. So there is no major technical difference between Oracle JDK and OpenJDK.
    Apart from the base code, Oracle JDK includes, Oracle’s implementation of Java Plugin and Java WebStart. Also includes third party closed source and open source components like graphics rasterizer and Rhino respectively.
    OpenJDK Font Renderer and Oracle JDK Flight Recorder are the noticeable major difference between Oracle JDK and OpenJDK.
  • Rockit was the Oracle’s JVM and from Java SE 7, HotSpot and JRockit merged into a single JVM. So now we have only the merged HotSpot JVM available.
    -There are instances where people claim that they had issues while running OpenJDK and that got solved when switched over to Oracle JDK.
    -Twitter has its own JDK.
  • Software like Android Studio, IntelliJ IDEA, Minecraft expects Oracle JDK to be used. In fact, warns.

source :- http://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/