The Short Version

Oracle changed how they license Java in January 2023. If you haven’t dealt with it yet, 2026 is the year it catches up to you.

The old model charged per processor or per named user. The new model charges per employee. Not per Java user. Per employee. Every full-time, part-time, and temp worker in your organization, plus contractors and outsourcers. It doesn’t matter if they’ve never touched a line of code.

If you have 5,000 employees and only 50 of them use Java, you’re paying for 5,000 licenses.

This isn’t a hypothetical. Gartner estimates that 1 in 5 organizations running Java will receive an Oracle audit notice by the end of 2026. And Oracle’s compliance team is known for calculating backdated fees that stretch three years into the past.

Here’s the thing: you probably don’t need Oracle’s JDK at all.

What Actually Changed

Before January 2023, Oracle Java SE licensing was straightforward. You paid per processor or per named user. It was predictable. Most enterprises had a handle on it.

Then Oracle published a new Java SE Universal Subscription price list that replaced everything. The per-processor model disappeared. The per-named-user model disappeared. In their place: a single metric based on total employee count.

The impact was immediate and brutal. For most mid-sized enterprises, costs increased somewhere between 3x and 10x overnight. Some organizations saw even higher jumps. Gartner’s research showed costs between two and five times greater under the new model for using the exact same software.

And the definition of “employee” is intentionally broad. It includes:

  • All full-time employees
  • All part-time employees
  • All temporary employees
  • All employees of your agents, contractors, outsourcers, and consultants who support your internal business operations

That last bullet is the one that catches people off guard. If you use a staffing firm for IT support and anyone in that arrangement touches a system running Oracle Java, their entire headcount could factor into your licensing obligation.

Why 2026 is the Inflection Point

Oracle has historically used three-year cycles for enforcement ramp-ups. The licensing change hit in January 2023. For the first year or two, Oracle focused on “soft” compliance inquiries. Friendly conversations. License review meetings disguised as account check-ins.

2026 is when those soft inquiries turn into formal audits.

The pattern is well-documented. Oracle’s License Management Services (LMS) team contacts you requesting a “compliance review.” They ask you to run their audit scripts across your environment. Those scripts inventory every instance of Oracle Java on every machine they can reach. Then Oracle’s compliance team calculates what you owe based on every employee in your organization.

If they find unlicensed usage, the back-billing can be severe. We’re talking retroactive fees covering every month since the new licensing model took effect. For a large organization, that exposure adds up fast.

This isn’t about whether Oracle Java is good software. It is. The question is whether it’s worth the licensing risk and cost when functionally identical alternatives exist at no charge.

The Alternatives Are Production-Ready

This is the part that surprises a lot of engineering leaders who haven’t looked at the landscape recently. OpenJDK isn’t some scrappy open-source project running on goodwill. It’s the reference implementation of Java SE, and multiple well-funded organizations ship production-grade builds of it.

Since Java 11, Oracle JDK and OpenJDK have been functionally equivalent. Same codebase. Same features. Same APIs. Oracle contributes the bulk of development work to OpenJDK, then builds their commercial JDK from it.

Here are the three distributions worth evaluating:

Eclipse Temurin (Adoptium)

This is the community standard. The Eclipse Foundation manages it with backing from IBM, Red Hat, Microsoft, and others. It’s TCK-tested (meaning it passes the official Java compatibility tests), freely available, and covers all major platforms.

If you don’t have a strong reason to pick something else, Temurin is the default answer. It’s the most vendor-neutral option. No commercial tie-in, no upsell, no strings. Adoptium provides clear migration guides and predictable release schedules aligned with OpenJDK releases.

Best for: Organizations that want a clean, vendor-neutral Java distribution with no commercial entanglements.

Amazon Corretto

Amazon builds and supports Corretto for their own production infrastructure, including AWS itself. It includes performance optimizations and patches that Amazon backports from newer JDK releases. Long-term support is free, with no licensing fees for production use.

If you’re running on AWS, Corretto is the path of least resistance. Amazon provides pre-built AMIs and container images. Your AWS support contracts may even cover Corretto-related issues depending on your tier.

Best for: AWS-heavy shops that want tight integration with their cloud platform.

Azul Zulu

Azul is the only company on this list whose entire business is Java. They offer Zulu as a free, TCK-tested OpenJDK build, with optional paid support tiers that include longer maintenance windows and guaranteed SLAs. Their enterprise support covers versions going back much further than most vendors.

If your compliance or procurement team insists on having a commercial support contract for Java, Azul gives you that without Oracle’s licensing model. The cost structure is straightforward and dramatically lower than Oracle’s per-employee pricing.

Best for: Organizations that need commercial Java support without Oracle’s licensing model, or those running older Java versions that need extended maintenance.

The Migration Is Easier Than You Think

Here’s what engineering leaders often get wrong about this decision: they assume migrating away from Oracle JDK is a significant technical project. It’s not.

Since Java 11, Oracle JDK and OpenJDK builds are functionally identical. For the vast majority of applications, the migration is a JDK swap. Uninstall Oracle JDK. Install the OpenJDK distribution of your choice. Run your test suite. Deploy.

That said, there are a few things to watch for. Here’s a realistic migration plan:

Step 1: Inventory Your Java Estate (1-2 Weeks)

You can’t migrate what you can’t find. This step is often the most time-consuming part of the process, not because it’s technically hard, but because Java installations have a way of hiding in places you forgot about.

Scan for Oracle JDK installations across all servers, containers, developer machines, CI/CD pipelines, and build servers. Don’t forget:

  • Legacy applications running on older app servers
  • Third-party tools that bundle their own JRE
  • Jenkins agents and other CI infrastructure
  • Docker base images that pull Oracle JDK

Document which Java version each application runs on and which Oracle-specific features (if any) it uses.

Step 2: Identify Oracle-Specific Dependencies (1 Week)

Most applications use standard Java APIs and won’t notice the switch. But some applications depend on Oracle-specific tooling:

  • JavaFX: Not bundled with OpenJDK by default. If your apps use JavaFX, you’ll need to add it as a separate dependency or choose a distribution that includes it (Azul Zulu offers this).
  • Oracle’s proprietary SNMP packages: Use JMX or SNMP4J instead.
  • Java Flight Recorder / Mission Control: These were open-sourced starting with JDK 11 and are available in OpenJDK distributions. If you’re on Java 8, you’ll need to upgrade first.
  • Font rendering differences: In rare cases, applications with custom font rendering may behave slightly differently. Test your UI-heavy applications.

Use jdeps to analyze your compiled classes for dependencies on internal Oracle APIs. Any usage of sun.* or com.oracle.* packages needs attention.

Step 3: Test in a Staging Environment (2-3 Weeks)

Stand up your target OpenJDK distribution in a staging environment. Run your full test suite. Focus on:

  • Integration tests that exercise external system connections
  • Performance benchmarks against your current Oracle JDK baseline
  • Any application that does classloader tricks, bytecode manipulation, or relies on specific JVM internals

In our experience, the pass rate on first attempt is high for standard enterprise Java applications. Spring Boot apps, Jakarta EE apps, batch processing systems. They just work.

Step 4: Update Your Pipeline and Deploy (1-2 Weeks)

Update your CI/CD pipelines to build against the new JDK. Update your Docker base images. Update your configuration management (Ansible, Chef, Puppet, whatever you use) to install the new distribution.

Roll out incrementally. Start with lower-risk applications. Monitor for a week. Then move to the next batch.

Realistic Timeline

For most mid-sized enterprises (50-200 Java applications), the entire migration takes 6-8 weeks. The technical work is the easy part. The coordination, testing sign-offs, and change management take longer.

The Risk Assessment Your Leadership Needs

Every VP of Engineering considering this migration will get the same question from their CTO or CFO: “What’s the risk?”

Here’s an honest assessment:

Technical Risk: Low

OpenJDK is not a second-class citizen. It’s the reference implementation of Java. Oracle builds their commercial JDK from it. Google, Amazon, Netflix, LinkedIn, and thousands of other organizations run OpenJDK in production at massive scale. The Java Community Process (JCP) ensures compatibility across all TCK-certified builds.

Operational Risk: Low to Medium

The main operational risk isn’t the JDK itself. It’s missing an Oracle JDK installation during inventory. If you migrate 95% of your estate but forget a few servers, and Oracle audits you, those remaining installations could still trigger a per-employee licensing obligation. Be thorough in your inventory.

Support Risk: Low

If your team handles Java issues internally today (and most engineering teams do), nothing changes. If you want a support contract, Azul, Red Hat, and others offer commercial OpenJDK support at a fraction of Oracle’s pricing. Amazon Corretto users on AWS may already have coverage through their cloud support agreement.

Compliance Risk: The Real Concern

The biggest risk isn’t migrating. It’s not migrating. Every quarter you continue running Oracle JDK without a subscription, your retroactive exposure grows. Oracle’s compliance team calculates back-billing from the date of first unlicensed use, and they have the audit scripts to find every installation.

What to Tell Your CFO

Your CFO doesn’t care about Java distributions. They care about two things: what are we spending, and what’s our exposure.

Here’s the conversation:

Current state: We’re running Oracle Java across our infrastructure. Under Oracle’s current licensing model, we’d need to license every employee in the organization, not just the engineers who use Java. That cost is significant and recurring annually.

Risk exposure: Oracle is actively auditing Java deployments in 2026. If they audit us, we’re looking at retroactive licensing fees going back to 2023. The longer we wait, the larger that number gets.

The fix: We migrate to an open-source Java distribution that’s functionally identical. Eclipse Temurin, Amazon Corretto, and Azul Zulu are all free, production-proven, and used by the largest tech companies in the world. The migration takes 6-8 weeks for our engineering team. Zero ongoing licensing cost.

ROI: The migration pays for itself immediately. Engineering time for the migration is a one-time cost. The licensing savings are permanent and recurring.

That’s the entire pitch. It’s not complicated. The only reason organizations delay is inertia and the assumption that the migration is harder than it actually is.

A Note on Oracle’s Free Tiers

Oracle does offer free-use terms for certain JDK releases. Oracle JDK 17 and later releases are available under the No-Fee Terms and Conditions (NFTC) for a limited window. For example, JDK 21 updates are available under NFTC until September 2026, one year after the next LTS release (Java 25, shipped September 2025).

But there’s a catch. Once that window closes, you’re back on the commercial licensing hook unless you’ve already migrated. And if you’re still running JDK 8 or 11 with Oracle’s commercial license, the NFTC doesn’t help you at all.

Relying on Oracle’s free tiers as a strategy is like relying on a promotional rate from your cable company. It works until it doesn’t, and you don’t get a warning when the price changes.

If You’re Still on Java 8 or 11

If your applications are still running Java 8 or 11, you have two problems to solve, not one. You need to get off Oracle’s JDK and you need to modernize to a supported Java version.

The good news: you can solve both at once. Migrate to an OpenJDK distribution first (even staying on Java 8 or 11 via Temurin or Corretto), then plan your version upgrade separately. Eclipse Temurin and Azul Zulu both provide Java 8 and 11 builds with extended support. This eliminates your Oracle licensing exposure immediately while giving your team runway to plan the version migration.

We’ve written a detailed guide on upgrading from Java 8 to 17: The Complete Guide to Migrating from Java 8 to Java 17. And if you’re planning your path to the latest LTS release, check out our Java 25 Enterprise Migration Guide.

Stop Paying for Something That’s Free

I’ll be direct about this. Oracle Java is excellent software. Oracle’s contributions to the Java ecosystem are massive and genuine. But the licensing model they’ve chosen puts enterprise engineering leaders in an impossible position. You’re paying for every employee in your company to use something that only your engineers touch, and the identical product is available at no cost from multiple reputable sources.

The technical migration is straightforward. The business case is obvious. The only question is whether you do it proactively on your own timeline, or reactively after an Oracle audit letter shows up.

If you’re evaluating this migration and want to talk through the specifics for your environment, reach out to us. We’ve helped engineering teams navigate Java licensing transitions and can give you a realistic assessment of what the migration looks like for your stack.

Java Modernization Readiness Assessment

15 questions your team should answer before starting a migration. Takes 10 minutes. Could save you months.