Two negotiators comparing proposals on a conference table
Oracle · OpenJDK Distributions · Comparison

Corretto, Temurin or Zulu. Four things actually differ.

All four builds are free, so the license is never the variable. Choose on the support window covering your oldest entrenched release, on who is contractually obliged when the virtual machine misbehaves, on how fast the security build appears, and on whether a certified binary exists for your platform.

Contact Us Oracle Hub
500+Enterprise clients
$2B+Under advisory
Industry Recognized
500+ Enterprise Clients
$2B+ Under Advisory
11 Vendor Practices
100% Buyer Side Independent

Every build here is free and every build here runs your code, so the license is never the variable. Four things genuinely differ: the support window on the version you run, who is contractually obliged when the virtual machine misbehaves, how fast the security build appears, and whether a certified binary exists for your platform.

Key takeaways

  • There is no industry LTS date. Each vendor publishes its own end date for the identical Java version. On Java 11 the published windows differ by more than four years between Temurin and Corretto or Zulu.
  • Compatibility is claimed per build, not per vendor. A conformance statement covers a specific version on a specific platform. Ask for the one that matches what you are deploying.
  • Only one of the four sells you a contract directly. Adoptium sells none, Amazon folds it into an AWS Support Plan, Microsoft into its lifecycle policy, and Azul sells first party terms with published units.
  • Patch lag is mostly yours. Vendors publish quarterly builds within hours to days of the upstream release. The weeks that follow are your pipeline, and no distribution choice fixes that.
  • Standardize on a specification, not a brand. Version, platform, conformance evidence and a build availability commitment. Written that way, the distribution stays replaceable.
  • Two builds is the target, not one. One primary covering 80 percent or more, one named exception for legacy versions, unusual platforms or cryptography constraints.

Why do LTS end dates differ for the same Java version?

Because long term support is a vendor commitment, not a property of the Java release. Each provider decides how long it will keep producing updates for a version, and those decisions diverge sharply on the older versions that dominate a migration off Oracle.

This is the single largest difference between the builds, and it is the one most likely to cost you a second project. Choosing a short window on your most entrenched version means re migrating years earlier than a peer who chose differently.

Published support windows, as stated by each vendor. Verify before you standardize.

Distribution Java 8 Java 11 Stated commitment Where to confirm
Amazon CorrettoTo December 2030To January 2032Long windows on the versions that matter in a migrationAmazon's Corretto support calendar
Azul Zulu, free buildsTo December 2030To January 2032Broadest version range, including releases older than Java 8Azul's published support roadmap
Eclipse TemurinTo December 2030At least October 2027At least four years per long term support releaseThe Adoptium support policy page
Microsoft Build of OpenJDKNot built, defers to TemurinNot the focusLong term support releases only, under its lifecycle policyMicrosoft's OpenJDK documentation

Treat every date in that table as a vendor statement to confirm on the day you decide, not as a fixed fact. Vendors extend and occasionally shorten these windows, and a decision recorded with a dated source is defensible in a way that a decision recorded from an article is not.

How to read a vendor support window without being misled

  • Read the floor, not the headline. "At least four years" is a commitment to four years. Anything beyond it is goodwill, and goodwill is not a plan.
  • Check the version you are stuck on. The window that matters is the one covering your oldest entrenched release, not your newest.
  • Separate free from paid. Some vendors publish one window for community builds and a longer one behind a support contract. Confirm which column applies to you.
  • Watch the platform footnotes. A window can apply to Linux on x64 and not to the architecture you actually run.

The version tail is what strands an estate

Most migrations off Oracle carry a tail of Java 8 and Java 11 workloads that cannot move quickly. That tail, not the modern estate, should drive the distribution decision, because the modern estate will be refreshed anyway.

If 30 percent of your applications sit on Java 11 and your chosen build commits to October 2027, you have set a re migration date whether you meant to or not. Choosing a build with a 2032 window on the same version buys four extra years for zero additional license cost.

Picking the shorter window costs nothing today and a full second project in a few years. The license is free. The re migration is not.

What does TCK certified actually mean, and how do you verify it?

It means a specific build passed the Java SE Technology Compatibility Kit, the conformance test suite that determines whether an implementation may be described as compatible with the Java specification. It is a real, checkable claim, and it is narrower than most buyers assume.

What the compatibility kit tests, and what it does not

Access to the kit for builds derived from the upstream project runs through the OpenJDK community conformance program, which is how independent vendors are able to test and publish conformance for their builds.

  • It tests specification conformance. That the build implements the Java SE specification for that version correctly.
  • It does not test performance. Garbage collector behavior, startup time and memory footprint are outside it entirely.
  • It does not test your application. Conformance is not a substitute for your own regression run.
  • It does not cover packaging. Fonts, container base images, installers and bundled components sit outside the specification.

The three questions that turn a claim into evidence

A vendor page saying "TCK certified" is marketing until it is tied to the artifact you are deploying. Ask three questions, in writing, and keep the answers with your decision record.

  1. Which exact version? Conformance is claimed per feature release and per update, not once for the brand.
  2. Which exact platform? A statement covering Linux on x64 does not automatically cover Windows, macOS on Apple silicon, or a musl based container image.
  3. Which exact artifact? The certified build and the convenience container image are not always the same object. Confirm which one your pipeline pulls.

Why building OpenJDK yourself changes your position

If your team compiles the upstream source itself, the resulting binary carries no conformance statement from anyone. That is legal and technically fine, and it removes the evidence an auditor or a software vendor may ask for.

Do it only where you have a specific reason and a specific owner. For everyone else, taking a vendor build with a published conformance statement costs nothing and answers a question you would otherwise have to answer yourself.

Who is contractually obliged to fix your Java virtual machine?

Only one of these four vendors will sign a document that puts that obligation on itself directly. The binaries are near identical, so the support relationship is the procurement variable that actually differs, and it is the one your risk function will ask about.

Eclipse Temurin: an excellent binary with no first party contract

Adoptium publishes Eclipse Temurin under Eclipse Foundation governance, and it is the strongest vendor neutral default in the market. What it does not do is sell support.

If you need a service level agreement, you buy it from a working group member such as Azul, Red Hat or IBM, under that supplier's own paper. That is workable, and it means the party producing your binary and the party contractually obliged to you are different organizations.

Say that out loud in a regulated environment, before somebody discovers it during an incident.

Amazon Corretto: support arrives inside the AWS relationship

There is no separate support product for Amazon Corretto. Commercial support runs through your existing AWS Support Plan, which is efficient if you already hold one at a meaningful tier.

Two questions decide whether that works for you. Does your plan tier carry a response commitment you can live with, and does your support entitlement extend to Corretto running outside AWS compute. Confirm the second in writing if any part of the estate is on premises.

Azul Zulu: first party terms with published units

Azul is the only one of the four selling its own support contract with publicly discussed per unit pricing, and the only one offering stabilized builds that carry security fixes with minimal other change. For an estate that migrated specifically to reduce risk, that stabilized option is worth pricing even if you do not buy it.

It is also the only one of the four where the vendor relationship is a genuine negotiation with terms to win. We work through those mechanics in the Azul Zulu versus Oracle Java comparison.

Microsoft Build of OpenJDK: long term support releases only

The Microsoft Build of OpenJDK covers long term support releases under Microsoft's lifecycle policy and does not build Java 8, pointing customers to Temurin for it. That makes it a clean fit for an Azure centric estate on current releases and a poor sole standard for an estate with a legacy tail.

The five clauses to read before you sign any of them

  1. The licensable unit. Core, virtual core, server or desktop. Agree the definition before the rate, because the definition is the multiplier.
  2. Build availability after a security release. A response time on tickets is not the same as a commitment to publish a patched build.
  3. Version coverage on the tail. Confirm the contract covers the oldest release you actually run, not just the current one.
  4. Platform coverage. The contract should name the architectures and operating systems in your estate, including container base images.
  5. The liability cap. Usually limited to fees paid. Read it before anyone cites indemnity in a risk paper.

What does commercial support cost when you buy it?

Low four figures per hundred cores at published starting points, which is a small fraction of a per employee subscription at the same scale. Because three of the four either bundle support into another relationship or do not sell it, one vendor's published units are the market reference point.

Published starting points, useful as a ceiling rather than a price

Unit Published starting point What to check
Per virtual core, per yearAbout $20How virtual cores are counted on your hypervisor
Per physical core, per yearAbout $40Whether it maps to two virtual cores in your contract
Per desktop, per yearAbout $25Whether developer machines are in or out of scope

Model these as a band and treat published figures as a ceiling, because transacted pricing at scale sits meaningfully below list. The full cost comparison against the Oracle line, including the internal effort, is built out in the three pattern cost model and framed for finance in the CFO business case.

How fast does each build ship the quarterly security update?

All four track the same quarterly upstream security cycle and publish within hours to days of the upstream release. The difference between vendors here is small. The difference between vendors and your own pipeline is enormous.

The three components of patch lag, and which one is yours

Where the time actually goes between a security release and a patched production system

Stage Typical elapsed Who owns it
Upstream fix to vendor build publishedHours to a few daysYour distribution vendor
Vendor build to your approved base imageDays to weeksYour platform team
Approved image to production everywhereWeeks to a quarterApplication owners and change governance

Read the ownership column. A distribution choice moves the first row and nothing else, which is why an eight year support window is worthless on an estate two quarters behind on updates.

What to put in the standard, so cadence is measured rather than assumed

  • A named owner for patch currency, with a reporting date each quarter rather than a shared inbox.
  • A measured metric. Percentage of running JVMs within one quarter of the current security build, reported alongside other operational controls.
  • Explicit image tags. Container base images change their underlying operating system between releases, so untagged references move underneath you.
  • A blocked path back. If the old binary is still reachable internally, it returns, which is covered in the CI/CD and workstation cleanup guide.

Which builds cover the platforms you actually run?

Coverage is where a good decision quietly fails. Standardize on a build that does not ship for one of your target platforms and you force a second distribution back in, which defeats the point of standardizing at all.

Platform coverage at a glance, to be confirmed against the current download matrix

Distribution Mainstream coverage Alpine and musl Legacy versions
Amazon CorrettoLinux on x64 and aarch64, Windows, macOS including Apple siliconYesJava 8 and 11 covered, nothing older
Azul ZuluBroadest matrix of the four across Linux, Windows and macOSYesBuilds available for releases older than Java 8
Eclipse TemurinStrong mainstream coverage across the common platformsYes, on current releasesJava 8 and 11 covered
Microsoft Build of OpenJDKCross platform on the releases it supportsLimitedDoes not build Java 8

The coverage questions nobody asks until it is too late

  • Does a build exist for every architecture in the estate, including the ARM instances somebody adopted for cost reasons last year.
  • Is there a musl based image for the container platform your applications actually deploy into.
  • Does the desktop story work, including any application that still needs a browser plugin replacement or a Java Web Start substitute.
  • Is anything running on an operating system version your candidate build no longer publishes for.
Network cabling and switch ports in a server cabinet, closely ordered and labeled
The estate that ends up with three distributions did not choose three. It failed to choose one, and let each team answer the question locally.

How do you choose one primary build and one fallback?

Decide once, at program level, and write it down as a standard rather than a preference. The target is one primary covering 80 percent or more of the estate, and one named exception build for the cases the primary genuinely cannot cover.

Primary and fallback by estate profile

If your estate is Primary Fallback The reason
Heavily on AWS with an active support planCorrettoZuluSupport inside a relationship you already pay for, long windows on Java 8 and 11
Azure centric, current releases onlyMicrosoft BuildTemurinAligned lifecycle, with Temurin covering the Java 8 gap Microsoft does not build
Long lived applications or a rule requiring one accountable supplierZuluTemurinLongest published windows, broadest platform matrix, first party contract available
Cloud neutral with disciplined version refreshTemurinCorrettoVendor neutral governance, with Corretto covering the longer version tail
A significant Java 8 estate that cannot move yetZulu or CorrettoTemurinThe version tail decides it, and the tail is where the risk sits

Write the standard as a specification, not a brand

The reason to standardize is governance, not loyalty. Write the standard so that a build qualifies by meeting criteria, and the estate stays portable between suppliers at the same feature release.

  • Named feature releases the standard covers, with the support window each requires.
  • Named platforms and architectures, including container base images.
  • A published conformance statement for each version and platform combination in use.
  • A stated commitment on build availability after each quarterly security release.
  • One named exception build, with the specific reason it exists written next to it.
4 years
Spread in Java 11 support windows
1 of 4
Sells a first party support contract
2 builds
One primary, one named exception

Source: Redress Compliance advisory engagement file, 2024 to 2025.

Where the common advice on OpenJDK distribution choice is wrong

The usual guidance is to pick the build that matches your cloud provider, and to treat that as the decisive criterion. We disagree. Cloud alignment is a convenience, and your estate will outlive your cloud strategy, your support plan tier and quite possibly your current cloud vendor. What strands an estate is the version tail and the support window attached to it, because that is what sets the date you have to do all of this again. Choose on the support window covering your oldest entrenched release, then on who is contractually obliged when the virtual machine misbehaves, then on platform coverage. Let cloud alignment break the tie. Decided in that order the answer is stable for years. Decided cloud first it lasts until the next platform strategy.

What should a buyer do next?

  1. List your Java feature releases with the share of applications on each, and identify the oldest release you cannot move within two years.
  2. List every target platform, including architectures, container base images, desktop operating systems and anything unusual.
  3. Check the published support window for that oldest release against each candidate build, and record the date and source for each.
  4. Ask each candidate for a conformance statement covering the exact version and platform you will deploy, and keep it with the decision record.
  5. Decide whether any workload carries an external obligation that requires a contract, and size support to that list rather than to the estate.
  6. Choose one primary and one named exception build, and publish it as a specification with criteria rather than as a brand preference.
  7. Appoint a named owner for patch currency and start reporting the percentage of JVMs within one quarter of the current security build.
  8. Wire the standard into base images, provisioning templates and pipelines, and confirm the rollback path in the support and rollback risk analysis.

Frequently asked questions

Corretto, Temurin or Zulu: which should we standardize on?

Decide on your oldest entrenched Java release first. Corretto and Zulu publish materially longer windows on Java 8 and 11 than Temurin does, so an estate with a large legacy tail should start there. Temurin is the strongest vendor neutral choice for a cloud neutral estate that refreshes versions on a disciplined cadence.

Why do vendors publish different end dates for the same Java version?

Because long term support is a vendor commitment rather than a property of the release. Each provider decides how long it will keep producing updates, and on Java 11 the published windows differ by more than four years across these builds. Your effective window is whatever the vendor whose binary you run has committed to.

What does TCK certified mean in practice?

That a specific build passed the Java SE compatibility test suite for a specific version on a specific platform. It confirms specification conformance, not performance, not packaging, and not that your application works. Ask for the conformance statement covering the exact version, platform and artifact you are deploying.

Does Adoptium sell support for Temurin?

No. Adoptium publishes the binaries and lists third party providers, so a support contract comes from a working group member such as Azul, Red Hat or IBM under their own paper. That means the organization producing your binary and the organization contractually obliged to you are different parties, which is worth stating explicitly in a regulated environment.

How is Amazon Corretto supported commercially?

Through your existing AWS Support Plan rather than a separate product. If you already hold a plan at a meaningful tier the support arrives inside a relationship you pay for anyway. Confirm in writing whether the entitlement extends to Corretto running outside AWS compute if any part of your estate is on premises.

Does the Microsoft Build of OpenJDK cover Java 8?

No. Microsoft does not build Java 8 and directs customers to Eclipse Temurin for it, and it supports long term support releases only under its lifecycle policy. That makes it a clean primary for an Azure centric estate on current releases and a poor sole standard where a legacy tail exists.

How quickly do these builds ship the quarterly security update?

Within hours to a few days of the upstream release for all four, so the difference between vendors is small. The weeks that follow are your own pipeline and change governance, which is where almost all real patch lag lives. Measure the percentage of running JVMs within one quarter of the current build and report it as a control.

How do we avoid the distribution becoming the next lock in?

Write the standard as a specification rather than a brand. Name the feature releases, the platforms, the conformance evidence required and the build availability commitment expected. Builds meeting that specification are interchangeable at the same feature release, which keeps a future switch a procurement decision rather than a project.

Free White Paper

Workday vs Oracle HCM. The cost comparison.

Workday vs Oracle HCM in 2026. Licensing models, total cost of ownership, implementation realities, and the buyer side decision framework that beats the.

Gated with a work email on the download page. No sales follow up you did not ask for.

Get the White Paper →
Independent, buyer side. We never share your details with vendors.
Run a software spend health check against your Oracle estate in under five minutes.
Open the Tool →
Deep Library

More on this topic.

Oracle Hub →
Oracle Java to OpenJDK Migration in 2026: The Decision and Execution Guide
Oracle · Guide
Oracle Java to OpenJDK Migration in 2026: The Decision and Execution Guide
The full guide this article belongs to.
Guide
Full Migration, Hybrid, or Subscribe: Three Java Patterns Modeled
Oracle · Deep dive
Full Migration, Hybrid, or Subscribe: Three Java Patterns Modeled
Another angle on the same decision.
Guide
Azul Zulu vs Oracle Java SE. Two distributions. Two very different contracts.
Oracle
Azul Zulu vs Oracle Java SE. Two distributions. Two very different contracts.
Azul Zulu vs Oracle Java SE Universal Subscription compared on runtime, contract, audit ri
Guide
Corretto vs OpenJDK. The 2026 runtime call.
Oracle
Corretto vs OpenJDK. The 2026 runtime call.
Corretto is a free OpenJDK distribution with 8 year LTS coverage; upstream builds stop pat
Guide
Oracle Java alternatives. OpenJDK, distribution by distribution.
Oracle
Oracle Java alternatives. OpenJDK, distribution by distribution.
Oracle Java SE alternatives in 2026. Eclipse Temurin, Amazon Corretto, Azul, Red Hat, Micr
Guide
Editorial boardroom interior

The advisor your vendors do not want.

500+ enterprise clients. 11 vendor practices. Industry recognized. One conversation can change what you pay for the next three years.

Stay ahead of Oracle licensing changes.

One buyer side briefing a week. Renewal signals, audit moves, and the levers that work. No vendor spin.

Pass it on

Know someone facing this exact decision?

Send this to whoever owns the renewal, the audit response, or the budget. It takes two clicks and it saves them a quarter of guessing.

Share on LinkedInShare by email