Author: Catherine Edelveis
Original post on Foojay: Read More
Table of Contents
TLDR
- All eight distributions on this list start from the same OpenJDK codebase. The version number is the thing they have most in common. However, support ownership, vendor accountability, and additional tooling variety are where they go separate ways.
- BellSoft and Azul are the two vendors for whom Java is the primary business rather than a portfolio item. The difference is in support window length and toolchain depth.
- If your infrastructure already standardizes on AWS, Azure, RHEL, SAP, or IBM platforms, the aligned distribution answers itself. The real decision is for teams without that constraint.
Intro
Picking a Java runtime is like picking any commodity infrastructure, isn’t it? You simply find the version you need and grab a build.
Spoiler alert: it isn’t.
The distributions in this comparison are united by two acts. First, they stem from the same OpenJDK source code. Second, most are TCK-verified, which means they’ve passed the Java SE Technology Compatibility Kit confirming the runtime behaves as specified. It means that they can run the same Java applications without modification.
Where they diverge is how they deal with situations when something goes wrong: who’s accountable, how long they’ll maintain the build, and whether the vendor’s portfolio lines up with the infrastructure you’re already running.
This article offers a neutral comparison of the leading OpenJDK distributions and features teams should pay attention to.
OpenJDK
Raw OpenJDK is the upstream development project. It is the community baseline, with maximum freedom and no vendor coupling. The project exists to develop the next Java version; there’s no support, no lifecycle guarantees, and older builds don’t include current security patches.
Consequently, upstream OpenJDK is not designed to behave like a long-term, maintained enterprise runtime. Never use upstream OpenJDK in production!
Eclipse Temurin
Temurin is the Eclipse Foundation’s TCK-verified build of OpenJDK, produced by the Adoptium project. It’s free, broadly supported across platforms, distributed via Docker containers and package managers, and carries a published LTS roadmap covering at least four years. Quarterly updates align with the OpenJDK release cycle. Compared to raw upstream OpenJDK, it’s the first distribution on this list that can actually be deployed.
The gap is support ownership. Adoptium doesn’t sell commercial support, it lists third-party providers. For organizations with a procurement requirement of “single vendor for both binaries and support,” Temurin doesn’t qualify. For teams where community governance and third-party support options are acceptable, it’s the natural baseline.
Liberica JDK
BellSoft’s Liberica JDK is TCK-certified and free for production use. Paketo buildpacks ship it by default. VMware recommends it for use with Spring Framework. LTS and non-LTS builds cover a wide range of platforms, with commercial support for LTS running 8.5 years. For teams still running Java 6 or 7, BellSoft offers commercial support for those versions as well. Quarterly updates ship in two tracks: CPU builds for security patches only, and PSU builds that include patches plus non-critical fixes.
BellSoft is a Java-centric vendor. Its portfolio extends beyond the JDK itself into additional Java deployment tools and covers JavaFX builds, OpenWebStart support, Mission Control, a GraalVM-based Liberica Native Image Kit, a container-optimized Linux distribution Alpaquita Linux, lightweight container images, hardened container images, and a product discovery API. That can be useful for teams that want one vendor for runtime, Java-focused Linux, and containerization assets.
Azul Zulu
Azul Zulu developed by Azul is free, TCK-verified, with LTS and non-LTS builds across a wide range of platforms. LTS releases get 8 years of support, with commercial support available for Java 6 and 7. Quarterly updates include both CPU and PSU tracks.
Azul is one of the Java-focused vendors. It provides not only Zulu binaries, but also additional Java products such as Azul Mission Control, and JVM inventory/discovery tooling. Extras include OpenJFX builds, IcedTea-Web for Java Web Start use cases, a documented metadata/discovery API, and commercial support for Applets.
Separately from Zulu, Azul offers Platform Prime: a JVM alternative to OpenJDK HotSpot with additional features optimizing performance: C4 (a pauseless GC), a ReadyNow! warmup accelerator, the Falcon JIT compiler, and a Cloud Native Compiler that offloads JIT compilation off the running instance.
Amazon Corretto
Amazon Corretto is a TCK-verified distribution maintained by AWS, available for Linux, Windows, and macOS, with regular updates for LTS versions and Docker images included.
The AWS-specific additions benefit teams already in that environment: the Amazon Corretto Crypto Provider (ACCP) is optimized for AWS services, and SnapStart cuts cold start latency for Java-based Lambda functions by up to 10x.
Commercial support isn’t a separate Corretto product — it runs through AWS Support Plans. For teams already on AWS with an active support plan, the JDK support comes with the relationship they already have. Outside that context, the commercial support picture is thin.
IBM Semeru Runtimes
IBM Semeru is built around OpenJ9, an alternative JVM implementation that replaces HotSpot. It’s available in an Open Edition (GPLv2 + Classpath Exception) and a Certified Edition under an IBM license, with IBM Runtimes for Business as the commercial support offering. Quarterly updates cover LTS versions and the current release.
The second argument for Semeru is platform coverage: it supports IBM Z, Power, AIX, and z/OS-related environments. For organizations on those platforms, Semeru is the natural fit. For everyone else considering Semeru, the main draw is OpenJ9 itself — the JVM optimizations are what make it distinct. But it also means it is not the most vanilla choice on the list as it might be hard to migrate to another JVM implementation in the future.
Red Hat OpenJDK
Red Hat’s OpenJDK build is designed for the Red Hat stack: RHEL, OpenShift, and supported middleware environments. It ships with a RHEL subscription, covers all LTS versions, and runs on Windows and RHEL only — no macOS, no other Linux distributions.
JDK support lifecycle depends on RHEL: if a RHEL version reaches end of support before the JDK version it ships with, JDK support ends with RHEL.
As for the TCK verification, Red Hat’s own policy states that OpenJDK 8 builds delivered after July 1, 2025 are not TCK-certified. Later versions remain TCK-tested.
For teams standardized on RHEL and OpenShift, the JDK support follows the same lifecycle as the rest of the stack. The platform constraints make it a non-starter outside that environment.
SapMachine
SapMachine is SAP’s free, TCK-verified distribution and the default runtime for many SAP applications and SAP Business Technology Platform services, available for Linux, Windows, and macOS. It covers all LTS versions except Java 8, plus the current release, with at least four years of documented LTS support. Quarterly updates align with OpenJDK.
Commercial support from SAP is available only for SAP customers using SapMachine in the context of SAP-supported products.
Important note: SAP applies patches that don’t always make it upstream. Vendor-specific fixes that remain in SapMachine only can surface as compatibility issues when moving to a different distribution. Organizations deep in the SAP stack should default to SapMachine. For non-SAP workloads, the support scope narrows and the migration risk is real.
Microsoft Build of OpenJDK
Microsoft’s OpenJDK distribution is no-cost and open-source, covering LTS versions except Java 8 and the current release, available for Linux, macOS, and Windows with Alpine-compatible binaries for some releases. Platform-specific installers and package manager installation methods are available alongside quarterly updates.
The same patch caveat as SapMachine applies: Microsoft may include fixes not yet backported upstream, with no guarantee they’ll make it into the main OpenJDK project. Commercial support requires active Azure Support Plans and covers only workloads on Azure-related services.
Making the Call
If procurement requires a single vendor for both binaries and support, upstream OpenJDK and Temurin are both off the table. Platform-aligned teams are sorted more quickly: AWS has Corretto, RHEL and OpenShift shops are covered by their Red Hat subscription, SAP landscapes use SapMachine, IBM enterprise platforms go to Semeru, and Azure workloads have Microsoft’s distribution.
For teams without strong platform alignment, the remaining question is vendor focus. BellSoft and Azul have Java as their primary business. That shows in support window length, legacy version coverage, and toolchain depth. Both companies offer a variety of additional features, tools, and optimizations that can provide tangible business value for organizations running predominantly Java-based workloads.
Temurin is still the possible call where community governance and third-party support options work. Outside those constraints, the decision mostly reduces to which vendor’s stack already maps to the infrastructure the team maintains.
The post Which Java Runtime Should You Use in Production? Comparing OpenJDK Distributions appeared first on foojay.
NLJUG – Nederlandse Java User Group NLJUG – de Nederlandse Java User Group – is opgericht in 2003. De NLJUG verenigt software ontwikkelaars, architecten, ICT managers, studenten, new media developers en haar businesspartners met algemene interesse in alle aspecten van Java Technology.