× 18th Apr 2019: AdoptOpenJDK 1.8.0_212 and 11.0.3 has been released for all major platforms!

Migration Guide

If you are moving from Oracle JDK to OpenJDK from the AdoptOpenJDK project, you'll probably have a few key questions on your mind. Firstly, you'll want to know what the differences are between Oracle JDK and AdoptOpenJDK and whether there are any steps you need to take to migrate. If you've looked at the home page, you'll also know that we provide AdoptOpenJDK binaries with a choice of Java Virtual Machine (JVM). So, you might also be wondering what the difference is between the HotSpot JVM and Eclipse OpenJ9 JVM and whether your existing applications will run without any changes. The answers to these questions are covered in the sections that follow.

To understand which platforms are supported, see the Platform Support Matrix.

The following table illustrates the proprietary components that can be found in Oracle JDK 8 and the alternative technologies that are either planned or available to replace them. Click on the links to learn more about each component and any steps that might be necessary to adopt them.

Oracle JDK 8 proprietary component Alternative component OpenJDK 8 OpenJDK 11
Webstart/browser plugin IcedTea-Web no (coming soon) no (coming soon)
JavaFX OpenJFX no yes (coming soon)
T2K font rendering engine Freetype yes yes
Monotype Lucida fonts Relicensed Lucida fonts no (coming soon) no (coming soon)
Ductus 2D renderer Pisces/Marlin yes (Pisces) yes (Marlin)
Kodac Color Matching System (KCMS) library LCMS yes yes
SNMP Use JMX (or SNMP4J) yes (not bundled) yes (not bundled)
Sound drivers Use Windows sound drivers yes (not bundled) yes (not bundled)
Java Flight Recorder (JFR) Java Flight Recorder no (coming soon) yes
Java Mission Control (JMC) Use JDK Mission Control no (coming soon) no (coming soon)

Note: JavaFX, JFR, and JMC were all contributed by Oracle to the OpenJDK project for releases after Java 8.

IcedTea-Web

AdoptOpenJDK are working on a project to provide IcedTea-Web as an open source replacement for Webstart and Java plugin technology. This feature will be available via an installer option in AdoptOpenJDK binaries. In the meantime, this IcedTea-Web installation video provides information on how to install it independently.

OpenJFX

Back in 2017, JavaFX was decoupled from the Oracle JDK and contributed to the OpenJDK community. The OpenJFX community is focused on OpenJFX 11+ and AdoptOpenJDK is working with the OpenJFX community to provide it via an installer option in AdoptOpenJDK binaries.

Note: OpenJFX 8 is no longer being actively maintained. If you need this capability, we recommend upgrading to OpenJFX 11.

Freetype font rendering library

OpenJDK uses the open source FreeType font rendering library instead of the proprietary T2K font library.

Relicensed Lucida fonts

The Lucida fonts that are available in Oracle JDK 8 have a proprietary 3rd party license. AdoptOpenJDK intend to provide relicensed Lucida fonts. Work is ongoing to minimize any display issues when these fonts are rendered by Freetype and is expected to complete in 2Q 2019.

Pisces and Marlin

Oracle JDK 8 uses a proprietary 2D graphics renderer called Ductus, whereas OpenJDK uses an open-source renderer called Pisces. From OpenJDK 9, the Marlin renderer is in use. Work is planned at AdoptOpenJDK to either backport Marlin to OpenJDK 8 and/or minimize any display issues between the two. The outlook for completion is Q2 2019.

LCMS

OpenJDK uses the Little Color Matching System (LCMS) open source open source library instead of the proprietary Kodac CMS library.

JMX

The proprietary SNMP package shipped with Oracle JDK 8 is not present in OpenJDK. Use JMX as an alternative, or SNMP4J. These packages are not bundled with the AdoptOpenJDK binaries.

Windows sound drivers

Oracle JDK provides native sound drivers for Java 8 on Windows, which are not present in OpenJDK. Use the sound drivers that are available with Microsoft Windows instead.

Java Flight Recorder

Java Flight Recorder (JFR) was decoupled from the Oracle JDK and contributed to the OpenJDK community. Work is underway to backport JFR from OpenJDK 11 to OpenJDK 8. When this work is complete, AdoptOpenJDK will include JFR in OpenJDK 8 binaries.

JDK Mission Control

Java Mission Control (JMC) is being open sourced under the OpenJDK JDK Mission Control project. When available, JMC will be able to receive JFR events from OpenJDK 11 and eventually OpenJDK 8, when that backport is complete.

Eclipse OpenJ9 is an alternative JVM that implements the Java Virtual Machine Specification. You can think of it as a drop in replacement for the HotSpot VM, which is part of the reference implementation. Most Java applications should run on an OpenJDK that contains the OpenJ9 VM without changing anything. However, because it is an independent implementation there are some slight differences. You can learn about these differences by reading the New to OpenJ9? topic in the OpenJ9 user documentation.

Here are a few of the resources available to help you with migrating to AdoptOpenJDK:

Quality 

Supported Platforms 

Submit an Issue