Search code examples
javajvmadoptopenjdk

Isn't AdoptOpenJDK using (the JVM of) OpenJDK?


The AdoptOpenJDK project seems to ship JDKs bundled with HotSpot JVM (as one possible option). But what is its relationship with OpenJDK then?


I understand the word OpenJDK can be ambiguous. Here I am referring to (quoted from Wikipedia)

a free and open-source implementation of the Java Platform, Standard Edition (Java SE).

which I think already contains a JVM.


Solution

  • Update: AdoptOpenJDK has changed its name to Adoptium, as part of its move to the Eclipse Foundation.


    OpenJDK provides complete source code for a full implementation of the Java Platform as defined in the Java Specifications, JSRs, and JEPs. An implementation of the Java platform includes many things, among them:

    An implementation of Java has the option of providing a Just-In-Time (JIT) compiler/optimizer as part of the JVM. The OpenJDK project includes source code for the HotSpot JIT.

    People providing builds or installers for the Java Platform are free to use HotSpot or to choose another JIT compiler technology. OpenJ9 in one such alternative JIT, developed at IBM, now open-sourced through the Eclipse Foundation, and provided free-of-charge. In the past, another alternative JIT was JRockit, owned by Oracle. Parts of JRockit have been merged into the current version of HotSpot.

    Diagram showing the evolution of JIT options in the JVM, with older HotSpot merging with JRockit to produce modern OpenJDK HotSpot, and the alternative J9 being open-sourced as OpenJ9.

    The AdoptOpenJDK project offers you choice of either the HotSpot engine provided by Oracle via the OpenJDK project or the alternative OpenJ9 engine provided by the Eclipse Foundation.

    With either choice you get the same class libraries from OpenJDK codebase, the same tools including Mission Control and Flight Recorder from OpenJDK, and the same utilities from OpenJDK. Only the JIT/JVM is different whether you choose HotSpot or OpenJ9.

    Screenshot of download page at AdoptOpenJDK offering you a choice either HotSpot JIT or OpenJ9 JIT.

    AdoptOpenJDK is only one of several vendors providing distributions of Java techonology as binaries/installers. Most of these are based mostly, if not entirely, on the OpenJDK project’s source code releases. Here is a flowchart showing you the various vendors.

    Flowchart guiding you in choosing a vendor for a Java 11 implementation

    And here is a list of possible motivations to consider in selecting a vendor.

    Motivations in choosing a vendor for Java