Migrating to Azul Zulu from Another OpenJDK Distribution
- Before You Start
- Identify Your Current JDK: Temurin, Corretto, Oracle JDK, and Others
- Choose the Matching Azul Zulu Package
- Migrate from Eclipse Temurin, Eclipse Adoptium, or AdoptOpenJDK
- Migrate from Amazon Corretto
- Migrate from Oracle JDK or Oracle Java SE
- Verify the Migration
- Run Azul Zulu Next to Your Current JDK
- Azul Zulu or Azul Zing?
- Frequently Asked Questions
Azul Zulu Builds of OpenJDK (Azul Zulu) are built from the same OpenJDK sources as every other OpenJDK distribution and are Java SE compliant and TCK verified. Moving to Azul Zulu is therefore a replacement of the runtime, not a port of your application: the same Java version behaves the same way, and your code, build files, and dependencies do not change.
This guide describes how to identify the distribution you run today, how to replace it with the matching Azul Zulu package, and how to confirm afterwards that your application really runs on Azul Zulu.
|
Tip
|
You do not have to remove your current JDK to try Azul Zulu. Several JDKs can be installed next to each other, as described in Uninstalling other OpenJDK distributions. |
Before You Start
Collect the following information about your current setup. You need it to pick the matching Azul Zulu package, and to fall back if you have to.
-
The Java version and the vendor of the JDK you run today:
java -version -
Whether you use a JDK or only a JRE, and whether you need JavaFX.
-
The value of
JAVA_HOMEand the entries inPATHthat point at the current JDK. -
The installation path and, on Linux, the name of the installed package.
-
Any JVM flags your application starts with, so that you can check them against Supported Platforms and the release notes.
Then confirm two things:
-
That your combination of operating system, CPU architecture, and Java version is listed in Supported Platforms.
-
Which distribution of Azul Zulu you need. Azul Zulu CA is the free distribution, Azul Zulu SA is the supported distribution available to Azul Core customers. The installation steps differ, so pick the right guide in the sections below.
Identify Your Current JDK: Temurin, Corretto, Oracle JDK, and Others
The second line of the java -version output names the distribution.
Use the following table to recognize it and to find the packages you replace.
| Distribution | Typical java -version vendor string |
Typical Linux package names |
|---|---|---|
Eclipse Temurin (Eclipse Adoptium, formerly AdoptOpenJDK) |
|
|
Amazon Corretto |
|
|
Oracle JDK / Oracle Java SE |
|
|
Oracle OpenJDK |
|
|
Microsoft Build of OpenJDK |
|
|
BellSoft Liberica JDK |
|
|
SapMachine |
|
|
Red Hat build of OpenJDK |
|
|
Azul Zulu (already migrated) |
|
|
|
Note
|
A distribution that reports no vendor name at all is usually a build made from OpenJDK sources by the operating system vendor. Check the package name and the installation path to be sure. |
Choose the Matching Azul Zulu Package
Every distribution builds a specific OpenJDK version, so a migration keeps the Java version you run today.
What differs is the version number a distribution reports for itself, and every vendor numbers its builds in its own way.
Eclipse Temurin appends the OpenJDK build number, as in 21.0.5+11.
Amazon Corretto adds its own build and revision numbers, as in 21.0.5.11.1.
Azul Zulu has a version number of its own, and Azul Zulu 21.38.21 is the build that contains OpenJDK 21.0.5.
So compare the OpenJDK version rather than the version a distribution reports for itself. The Version Search Tool translates between the two: it looks up the Azul Zulu version that contains the OpenJDK version you run today.
Replace your current package with the Azul Zulu package in the same format:
| You install today with | Free distribution (Zulu CA) | Supported distribution (Zulu SA) |
|---|---|---|
|
||
|
||
|
||
An archive you unpack yourself |
||
An installer on Windows |
||
An installer on macOS |
||
A container base image |
||
SDKMAN! |
||
If your current distribution does not bundle JavaFX and your application needs it, choose an Azul Zulu package that includes JavaFX instead of adding a separate JavaFX distribution. See Supported Platforms for the versions in which JavaFX is available.
Migrate from Eclipse Temurin, Eclipse Adoptium, or AdoptOpenJDK
Eclipse Temurin is the current name of the distribution that was called AdoptOpenJDK before it moved to the Eclipse Foundation as Eclipse Adoptium. Both names still appear in older installations and scripts.
-
Note the Java version reported by
java -version, and install the same Azul Zulu version with the guide for your package format in Choose the Matching Azul Zulu Package. -
Update
JAVA_HOMEandPATHto the Azul Zulu installation folder. On Linux, the packages from the Azul repositories install into/usr/lib/jvm/zulu<X>-ca-<arch>. -
On Linux, if your system selects the default JDK through
update-alternativesoralternatives, point thejavaandjavacalternatives at the Azul Zulu installation. -
Update any container image, CI configuration, or build script that refers to a Temurin image or a Temurin installation path.
-
Remove the Temurin packages once your application runs correctly, as described in Uninstalling other OpenJDK distributions.
What changes and what does not:
-
The vendor strings reported by
java -versionand by thejava.vendorandjava.vm.vendorsystem properties change. Code or tooling that tests these values needs to be updated. -
The installation path changes, so anything that hard-codes a Temurin path needs to be updated.
-
The Java API, the bytecode, and the standard JVM options do not change.
Migrate from Amazon Corretto
Amazon Corretto is also referred to as AWS Corretto. The migration follows the same steps as for Temurin.
-
Install the matching Azul Zulu version with the guide for your package format in Choose the Matching Azul Zulu Package.
-
Replace the Corretto packages, typically named
java-<X>-amazon-corretto-jdkorjava-<X>-amazon-corretto-devel, and updateJAVA_HOMEandPATH. -
On Amazon Linux, the Azul RPM repository is used in the same way as on other Red Hat derivatives. See Install Zulu CA RPM packages.
-
Update container images that use a Corretto base image, and CI jobs that select Corretto through a setup action or a toolchain declaration.
-
Verify the result as described in Verify the Migration.
Migrate from Oracle JDK or Oracle Java SE
Migrating away from Oracle Java has a few extra considerations, because the Oracle JDK contains some components that are not part of OpenJDK, and because the Windows installer shares registry keys with Azul Zulu.
Read these two pages before you start:
-
About Azul Commercial Compatibility Kit describes the Azul Commercial Compatibility Kit (CCK), an add-on that provides alternatives for closed-source Oracle JDK components that are missing from OpenJDK-based distributions.
-
Installation Order When Migrating from Oracle Java describes why you should uninstall Oracle Java 8 or older before you install Azul Zulu on Windows, and how to repair the registry if you did it in the other order.
The steps are:
-
Record the exact Oracle package you replace: JRE or JDK, the version, and the installation path.
-
On Windows, uninstall Oracle Java first, then install Azul Zulu with the guide in Install Zulu on Windows.
-
On Linux and macOS, install the matching Azul Zulu version and update
JAVA_HOMEandPATH. -
Check whether your application uses components that the Oracle JDK provided and OpenJDK does not. If it does, request access to the CCK through About Azul Commercial Compatibility Kit.
-
If your application runs Java Web Start applications, replace Java Web Start with IcedTea-Web.
-
Review the JVM flags your application starts with. Flags that exist only in the Oracle JDK have to be removed or replaced.
-
Verify the result as described in Verify the Migration.
|
Note
|
Oracle JDK 8 bundled JavaFX. If you migrate from Oracle JDK 8 and your application uses JavaFX, choose an Azul Zulu package that includes JavaFX. |
Verify the Migration
-
Confirm that the JDK on the
PATHis Azul Zulu:java -versionThe second line of the output names Zulu, for example:
OpenJDK Runtime Environment Zulu<version>-CA (build <version>) -
Confirm that
JAVA_HOMEpoints at the Azul Zulu installation folder, and that no other JDK appears earlier on thePATH. -
Confirm that your build tool uses the same JDK. Maven and Gradle can be configured with a toolchain that still selects the previous distribution.
-
Run your test suite, and check the application logs for warnings about unrecognized JVM options.
-
Compare startup time, memory use, and garbage collection behavior with the values you measured before the migration.
Run Azul Zulu Next to Your Current JDK
You do not have to remove the previous distribution. Installing several JDKs next to each other is a low-risk way to test the migration first:
-
SDKMAN! installs and switches between distributions on Linux and macOS.
-
Managing Multiple Azul Zulu Versions describes how to switch between installations per operating system.
-
Uninstalling other OpenJDK distributions describes how to find every JDK on a machine, and how to remove the ones you no longer need.
Azul Zulu or Azul Zing?
Azul provides two Java runtimes, and a migration is a good moment to choose between them. The Azul Core documentation home page compares them in more detail.
-
Azul Zulu Builds of OpenJDK is a build of OpenJDK and a one-to-one replacement for any other OpenJDK distribution. It is the subject of this guide and part of Azul Core.
-
Azul Zing Builds of OpenJDK is a JVM based on OpenJDK and optimized for low latency and high throughput, with the C4 garbage collector and the Falcon compiler. It is part of Azul Prime.
Both run the same Java bytecode, so an application that runs on another OpenJDK distribution runs on either of them without code changes. Choose Azul Zing when garbage collection pauses or warm-up time limit your application, and Azul Zulu for general-purpose workloads.
For the migration steps and the tuning options of Azul Prime, see the Azul Prime documentation.
Frequently Asked Questions
-
Is Azul Zulu a drop-in replacement for Oracle JDK?
Yes. Azul Zulu is built from OpenJDK sources and is Java SE compliant and TCK verified, so your application runs without code changes. Components that exist only in the closed-source Oracle JDK are covered by the Azul Commercial Compatibility Kit.
-
How do I switch from Eclipse Temurin to Azul Zulu?
Install the Azul Zulu package with the same Java version and package format, update
JAVA_HOMEandPATH, and remove the Temurin packages. See Migrate from Eclipse Temurin, Eclipse Adoptium, or AdoptOpenJDK. -
I still use AdoptOpenJDK. Does this guide apply?
Yes. AdoptOpenJDK was renamed to Eclipse Adoptium, and its builds are now called Eclipse Temurin. The migration steps are the same.
-
How do I switch from Amazon Corretto to Azul Zulu?
Replace the
java-<X>-amazon-correttopackages with the Azul Zulu packages for the same Java version. See Migrate from Amazon Corretto. -
Do I have to change my Java version when I migrate?
No. Azul Zulu is available for the same OpenJDK versions as the other distributions. Migrate first, and upgrade the Java version as a separate step.
-
Can I keep my current JDK installed?
Yes. Several JDKs can be installed on the same machine. See Run Azul Zulu Next to Your Current JDK.
-
Does the vendor string change after the migration?
Yes. The
java.vendorandjava.vm.vendorsystem properties, and thejava -versionoutput, report Azul. Update any code or tooling that checks these values.