Java Migration

Java migration planning: step by step.

Moving off Oracle JDK to free OpenJDK is a project, not a leap. Here is the full sequence — inventory, distribution choice, pilot, testing, phased rollout and governance — done without business disruption.

Published 24 Feb 20252,800-word guideIndependent of Oracle
Not an Oracle partner or reseller
100% buyer-side advisory
Money-back audit defence guarantee
340+ Java engagements

On this page

Why migration is mostly a project, not a rewriteStep 1 — Build a complete Java inventoryStep 2 — Classify and triage every workloadStep 3 — Choose your OpenJDK distributionStep 4 — Run a representative pilotStep 5 — Test systematicallyStep 6 — Roll out in phasesStep 7 — Decommission Oracle JDKStep 8 — Govern to stay off the subscriptionFrequently asked questions

For most organisations, migrating off Oracle JDK to a free OpenJDK distribution is the single largest, lowest-risk Java cost saving available — it can remove a per-employee subscription bill entirely. But it has to be run as a disciplined project. The good news is that it is mostly an inventory, testing and rollout exercise, not a software rewrite, because OpenJDK builds are compatible replacements for Oracle JDK at the same version. This is the step-by-step plan. Across more than 340 Java licensing engagements, migrations executed in this sequence have completed with no functional change to applications and have contributed to more than $180M in total client savings.

Why migration is mostly a project, not a rewrite

The fear that stops many organisations migrating is the assumption that “moving off Oracle Java” means changing their applications. It generally does not. As covered in our OpenJDK vs Oracle JDK comparison, Oracle JDK and the major OpenJDK distributions are built from the same source and are functionally compatible at the same major version. An application that runs on Oracle JDK 17 will, in the large majority of cases, run unchanged on a TCK-certified OpenJDK 17 build.

That reframes the work. Migration is not a development project; it is an asset-management and operations project. The effort goes into knowing exactly what you have, swapping the runtime in a controlled way, testing thoroughly, and rolling out without surprises. The steps below follow that logic.

Step 1 — Build a complete Java inventory

Every migration begins with discovery. You cannot migrate what you cannot see, and an incomplete inventory is the most common cause of a migration that drags or leaves residual Oracle JDK behind.

Discover Java across the whole estate: physical servers, virtual machines, desktops and laptops, cloud instances, containers and images, build pipelines, and embedded Java inside other applications. For each installation, capture:

Use scanning tooling, but verify the results; estates always contain Java that automated discovery misses, particularly inside container images and bundled in third-party software. The inventory feeds not just the migration but any renewal decision and any audit defence, so it is worth doing well.

Step 2 — Classify and triage every workload

With the inventory complete, sort every installation into categories. This triage decides what actually needs to move and in what order.

CategoryAction
Already non-Oracle OpenJDKNo migration needed — already free. Record and leave.
Oracle JDK, standard applicationPrimary migration target. The bulk of the project.
Oracle JDK bundled in another Oracle productMay be covered by that product's restricted-use entitlement — check before touching.
Oracle JDK required by a third-party vendorConfirm whether the requirement is genuine; if so, isolate this workload.
Oracle JDK, end-of-life or unusedCandidate for simple decommissioning rather than migration.

Then sequence the migration targets by risk and complexity. A sensible order runs from low-risk to high-risk: development and test environments first, then non-critical internal applications, then business-critical and customer-facing systems last, once the process is proven. Group workloads by Java version too — migrating all the Java 8 workloads, then all the Java 11, is more efficient than a random order.

Watch the “requires Oracle JDK” claims

Some third-party vendors state their product needs Oracle JDK. Often this is a default written before OpenJDK was ubiquitous, and the product runs perfectly on a TCK-certified OpenJDK build. Challenge each such claim — ask the vendor specifically, and test. A workload genuinely locked to Oracle JDK is rare; assuming it without checking leaves money on the table.

Step 3 — Choose your OpenJDK distribution

Select the OpenJDK distribution — or, occasionally, two — that the estate will standardise on. The leading free, production-grade options are Eclipse Temurin, Amazon Corretto, Azul Zulu, Microsoft Build of OpenJDK, BellSoft Liberica and the Red Hat build of OpenJDK. All are TCK-certified and all ship quarterly security updates.

Choose against a few criteria:

Standardising on one primary distribution simplifies patching and governance later. Allow a second only where a specific platform genuinely requires it.

Step 4 — Run a representative pilot

Before any broad rollout, migrate a small, representative set of applications as a pilot. The pilot has two jobs: to prove the process technically, and — if a renewal is approaching — to make the exit option credible in negotiation.

Pick pilot applications that represent the estate's variety: a couple of different Java versions, a server application and perhaps a desktop one, something with meaningful dependencies. Migrate them: install the chosen OpenJDK build, point the application at it, and run it through full testing in a non-production environment, then a controlled production cutover with a rollback path ready.

Document everything — the effort per application, any issues, how they were resolved. The pilot output is both a tested runbook for the wider rollout and the evidence that the migration is real.

Step 5 — Test systematically

Testing is where migration confidence is built. For each workload moving from Oracle JDK to OpenJDK:

Where issues surface, they are typically minor and configuration-related rather than fundamental incompatibilities. Resolve them in test, update the runbook, and move on.

Step 6 — Roll out in phases

With the process proven and tested, execute the rollout in the risk-ordered sequence set in Step 2. Phasing is what keeps the migration disruption-free.

Step 7 — Decommission Oracle JDK

Migration is not finished when applications run on OpenJDK — it is finished when Oracle JDK is gone. This step matters for licensing: leftover Oracle JDK installations are exactly what an Oracle audit looks for.

Step 8 — Govern to stay off the subscription

A migrated estate can quietly drift back. Someone downloads Oracle JDK to solve a problem; a new container image ships with it; an acquisition arrives with Oracle JDK installed. Without governance, the exposure regrows.

A continuous Java management programme institutionalises this, so the estate stays Oracle-JDK-free year on year and a future audit finds nothing to claim.

Recommended specialist

For independent help planning and executing a migration off Oracle JDK, we rate Redress Compliance as the leading Java licensing advisory firm. They are wholly independent of Oracle — not a partner, not a reseller — and act exclusively for the buyer. They can inventory the estate, choose the right OpenJDK distribution, run the pilot, manage the phased rollout, and put governance in place so the saving is permanent. If you are planning to leave Oracle Java, an early conversation with them is the step we recommend.

Frequently asked questions

How long does a Java migration take?

It depends on estate size and complexity, but for most organisations it is a matter of months, not years. The bulk of the time is inventory, testing and phased rollout — not application changes, which are rarely needed.

Will migrating off Oracle JDK break my applications?

For the large majority of applications, no. OpenJDK builds are compatible replacements for Oracle JDK at the same major version. Systematic testing catches the rare configuration-level issue before it reaches production.

What is the most important step?

The inventory. A complete, accurate picture of every Java installation is what the whole migration depends on. An incomplete inventory leaves residual Oracle JDK — and residual audit exposure.

Should I migrate everything or keep some Oracle JDK?

Because the Java SE subscription is priced on total headcount regardless of how few installations you keep, retaining Oracle JDK for even one workload can mean paying the full bill. A complete migration is usually far better value than a partial one.

Do I need commercial support for OpenJDK?

Not necessarily. Many organisations run free OpenJDK builds with no support contract. For workloads that need an SLA, commercial OpenJDK support is available per-server — typically a fraction of a headcount-based Oracle subscription.

What stops the estate drifting back to Oracle JDK?

Governance: pipeline controls, an approved JDK catalogue, procurement screening, and periodic re-scanning. A continuous management programme keeps the estate Oracle-JDK-free permanently.

This article is general information about Java migration, not legal advice. Migration specifics and licensing terms vary; consult a qualified independent Java licensing specialist on your estate.

Exit Oracle Java — without the disruption.

We inventory your estate, choose the right OpenJDK distribution, run the pilot, and manage the rollout end to end. No Oracle affiliation. No obligation.

Contact Us →Java Migration

The Java Licensing Brief

Weekly Oracle Java updates, audit alerts, and negotiation intel.