Azul Statement on the eMudhra Intermediate CA Certificates Compromise

Oracle Java Licensing

What Is Oracle Java Licensing?

Oracle Java Licensing is a subscription or set of rules for how you can use, distribute, and support development through the Java Development Kit (JDK). These rules are going to be different, depending on which JDK you use (such as Oracle JDK, OpenJDK, or an OpenJDK provider), what version of Java you use, and what you’re doing with it (such as development, production, or redistribution).

What Are the Types of Java Licenses?

There are three different types of options for Java development:

  • Oracle JDK: This can be free or paid subscriptions. We expand on the different types of licenses. This is by far the most expensive option.
  • OpenJDK: These releases are builds from Oracle and are currently licensed under GPLv2 with the Classpath Exception. They are free to use, but they are supported by the open-source community, and you might end up paying more for the lack of support. We will explain more about this.
  • OpenJDK providers: Several companies offer paid distributions with full support. The range of support varies greatly.

Oracle JDK

Oracle has changed their Java licensing a lot, and their current licensing can be confusing and prohibitively expensive. This started in 2023 with an employee-based Universal Subscription, where they charge based on a company’s total employee and contractor count, not Java users. Oracle offers a limited free option, the No-Fee Terms and Conditions (NFTC) license.

Here is a simplified summary of the different Oracle JDK license options, based on the version of Java that you would use:

  • Oracle JDK 25: You can use the NFTC license for free until September 2028, when they will move Java 25 to the Oracle Technology Network (OTN) license and Java SE Universal Subscription.
  • Oracle JDK 21: You can use the NFTC license for free until September 2026, when they will move Java 21 to the OTN license and paid subscription.
  • Oracle JDK 17, 11, and 8: These require the OTN license and paid subscription.

Values: Rather than using OpenJDK (which is free), you receive Oracle’s full support, which includes updates and security patches. Oracle’s support is generally more extensive than many OpenJDK providers.

Issues: If you haven’t been paying for your Oracle JDK, you can be audited, and the back payment might be critical. The cost of the subscription can be prohibitive, especially in the new model where you pay per employee. They don’t support Java 6, Java 7, and older Java tools and technologies.

For more information about Oracle Java SE licensing directly from Oracle, see Oracle JDK License General FAQs.

How Much Does Oracle Java SE Universal Subscription Cost?

When the NFTC license expires, you move to the Oracle Technology Network (OTN) license, which is also free, but this license only covers personal use and development, not commercial production use. If you’re going to deploy your application, you’ll need the Java SE Universal Subscription.

As of 2026, Oracle charges per employee (regardless of whether they use Java):

  • $15 (for organizations between 1-999 employees)
  • $12 (1,000-2,999 employees)
  • $10.50 (3,000-9,999 employees)
  • $8.25 (10,000-19,999 employees)
  • $6.75 (20,000-29,999 employees)
  • $5.70 (30,000-39,999 employees)
  • $5.25 (40,000-49,999 employees)
  • Contact Oracle for over 50,000 employees

If you have 900 employees, Oracle JDK costs you $13,500 a month. If you have 2,900 employees, it costs you $34,800 a month. If you have 49,000 employees, it costs you $257,250 a month. For pricing information from Oracle, see Oracle Java SE Subscription Global Price List.

Many organizations saw a cost increase of 2x–5x from the previous pricing model (before 2023), when they were charged per JDK instance, rather than per employee.

The following roles in an organization count as “employees” toward the Oracle Java SE Universal Subscription cost (regardless of whether they use Java):

  • Full-time employees
  • Part-time employees
  • Temporary workers
  • Contractors
  • Consultants
  • Outsourced workers

As part of this license, employees are considered anyone who supports internal business operations.

OpenJDK

Alternatively, Oracle provides OpenJDK, which is a free, open-source implementation of Java SE. OpenJDK offers minimal support with PSUs (Patch Set Updates) and limited community support.

Values: In addition to being standards-compliant, OpenJDK is free, community-maintained, and vendor-neutral. You face minimal risk of an audit.

Issues: However, the lack of support for OpenJDK might cripple your product development lifecycle:

  • Security updates stop quickly, which means you might have to upgrade Java versions regularly. Then you’ll get no more security patches, but fixes, and performance fixes, even though you’ll need them. All the older versions of Java (which many companies use) are completely unsupported.
  • Community-supported OpenJDK does not provide OOB patches. PSUs (Patch Set Updates) include security fixes, bug fixes, and all other changes in the quarterly cycle. Oracle does not include OOB (out-of-band) emergency patches in the free OpenJDK. That means developers have to wait longer for the updates, and sometimes that isn’t possible. When hackers learn about OOB patches, they learn about security weaknesses to exploit, and all OpenJDK users (without the OOB patches) become vulnerable to the attacks.
  • Community-supported OpenJDK does not provide CPUs. The PSUs include security fixes, bug fixes, and all other changes, but Oracle does not include CPUs (Critical Patch Updates) in the free OpenJDK. CPUs are separate updates that only include security updates. This way you could only take the security updates. The reason they include them is because if you upgrade to a PSU, then the bug fixes and feature updates could break your builds. This could result in OpenJDK users regularly fixing the breaks (every quarter), rather than working on their product improvements and releases. And, like OOB patches, if you ever decide that the cost is too high to upgrade to a PSU, then the hackers have another list of vulnerabilities to exploit on your system.
  • Consistently upgrading Java versions can be impossible to maintain. The result of this release system is that, without paid support, you’re regularly being required to upgrade to the latest version of Java. (Even with paid support, the pressure will eventually be applied, but it’s much more manageable over time.) However, the internal cost of regularly upgrading your Java and JVM environments can result in a lack of productivity for your team. Many companies can’t afford this, which means they require vendor support, or they remain in extreme security or audit risks. And many companies have seen the consequences of those risks.

OpenJDK Providers

Both of the previous options (Oracle subscriptions and the community-supported OpenJDK) can be too difficult for a company to maintain, while staying on budget and productively releasing their product. That leads you to the third option, where vendors support OpenJDK with low-cost models.

PSU-only updates: Some of these providers do not charge for their OpenJDK support, but they only provide the community OpenJDK distributions. This includes Microsoft and Amazon Corretto (which provide free support for their cloud platforms). Other vendors charge for support, but they still only provide the free PSU updates.

CPU updates: Some vendors include their own backport teams (like Azul and Oracle), and so they provide CPU-style builds, along with the OOB patches.

For a detailed comparison between the OpenJDK distributions, see Azul Core Comparison Matrix and the full Oracle Java vs OpenJDK Comparison Guide.

Why Java Licensing Matters

Oracle’s licensing has changed multiple times since 2019. In 2019, they ended free public updates for Oracle JDK 8 and moved Oracle JDK to the restrictive OTN license, pushing commercial users to the Java SE Subscription (introduced in 2018). In 2021, they introduced the No-Fee Terms and Conditions (NFTC) license, which provides time-bound free use of the latest version of Java. In 2023, Oracle switched to the employee-based subscription, which greatly increased the subscription costs for most organizations.

Although the latest version of Java is free to use with the NFTC license, it is difficult or impossible for most organizations to switch to the latest version of Java every few years. That results in organizations not being able to use the NFTC license for long, and they’ll likely need to pick between the expensive Oracle Java SE Universal Subscription, OpenJDK, or an OpenJDK distribution.

For many organizations, the NFTC license merely acts like a preview to try out a version of Java (such as Java 21 or 25) to see if they want to invest in it. Then, they would likely need to pay for ongoing support, either through the costly Oracle Java SE Universal Subscription model or through an OpenJDK provider, such as Red Hat or Azul.

Since 2023, Oracle has increased their enforcement and audits. They charge organizations, requiring them to pay retroactive fees for unlicensed Oracle JDK use. During an audit, an organization might have to stop product development in order to research and provide Oracle with the required information.

Top Questions About Java Licensing

What are some of the top questions that the development community is asking about Oracle Java licensing?

QuestionAnswer
Do I need to pay for Oracle Java?Oracle’s licensing depends heavily on version, distribution, and environment: – Oracle JDK 21+ is under the Oracle NFTC (No‑Fee Terms and Conditions) License, which is free for all users during the current NFTC window (see version-specific end dates above). – Older LTS versions (8, 11, 17) may require a commercial subscription for production use unless they’re using OpenJDK. These NFTC licenses are time-bound, so you would either need to subscribe, regularly update your Java environment, or find an OpenJDK provider to support you instead.
Is OpenJDK really free for commercial use?Yes. OpenJDK is licensed under GPLv2 with Classpath Exception, which allows commercial use and distribution without forcing your code to be GPL.
Developers often ask whether linking their app to OpenJDK forces them to open-source it — the answer is no, thanks to the Classpath Exception. However, the community support provided without a vendor is insufficient for many enterprise organizations, to maintain security support and focus their development teams on improvements and releases.
What’s the difference between Oracle JDK and OpenJDKOracle JDK and OpenJDK share the same codebase for modern releases, but Oracle JDK may include additional tools or longer support windows depending on the version. Licensing is the main differentiator, which includes costs for support. The alternative is an OpenJDK provider like Azul, who can offer more support options for a lower cost.
Can I use Oracle JDK for development for free?Yes — for many versions, development and testing are free under the OTN License, but production will require a paid subscription, unless you use the time-bound NFTC license. Developers often misunderstand this distinction and assume “free for dev” means “free everywhere.”
What counts as ‘production use’?Oracle defines production broadly for older licenses — anything used in business operations usually will require a subscription.
Can Oracle audit my company for Java usage?Oracle uses both formal and informal (“soft”) audits to verify compliance, and both can lead to unexpected costs if usage isn’t tracked and paid for.
If I embed Java in my product, do I owe Oracle money?Developers building desktop apps, installers, or embedded systems often ask whether bundling a JRE/JDK triggers licensing obligations. Under OpenJDK, bundling is allowed. Under Oracle’s older licenses, redistribution usually requires a subscription or commercial agreement.
Which Java version is safest to use without legal risk?The lower-risk options are typically: (1) OpenJDK distributions (such as Adoptium, Amazon Corretto, and Azul) and (2) Oracle JDK 21+ under the No-Fee Terms and Conditions License, (NFTC), which is free for all users. Note that the NFTC license is time-bound and expires sooner than many organizations account for.
Does using Java in containers change licensing?Oracle licensing historically counted every installed instance, which complicates containerized environments. (They used the old Processor and Named User Plus metrics.) This is a major source of confusion and audit risk. Oracle now charges per employee at the company and doesn’t track how many instances you run, but using Java in even one container counts toward the licensing requirements.
If one developer in my entire organization uses Java, does Oracle require (and charge) a subscription fee for my entire organization?Yes. If you use Java anywhere one time, then you have to license Java for your entire organization. If you’re not aware of your use of Java (and aren’t using OpenJDK), then Oracle can (and often will) audit your use, which means that you will have to use your resources to work with them on the audit (rather than on development), they will charge you back usage fees, and they will require you to license your Java implementations moving forward. This process can be crippling to many organizations.
How do I track Java usage to stay compliant?Licensing experts emphasize the need for usage tracking to avoid unexpected compliance costs. These unexpected compliance costs include the cost of dedicating your resources to research the history of your organization’s Java usage.

How Azul Core Helps with Java Licenses

Azul Core is an enterprise-grade, fully supported distribution of OpenJDK. It is a drop-in replacement for Oracle Java SE, which means Azul Core (with their OpenJDK distribution) can replace Oracle Java with relative ease. Core is designed for business-critical Java workloads.

Azul Core offers robust support features for an OpenJDK distribution at a cost that is usually much lower than Oracle Java SE Universal Subscription (70-80% less expensive). It can also help reduce your audit exposure. (You may still face an audit of prior Java usage before switching to Azul Core.)

Some of the features include:

  • Critical Patch Updates (CPUs): These are security-only, low risk updates. Azul also offers full Patch Set Updates (PSUs).
  • Long-term support: They cover older versions of Java, including Java 6, 7, 8, 17, 21, and so on.
  • 24x7x365 enterprise support: This includes strict SLAs for critical security issues and a root-cause analysis.
  • Broad OS and architecture coverage: Their coverage includes Windows, Linux, macOS, AIX, QNX, ARM, x86, PowerPC, SPARC, and more.
core-demo-banner

Ready? So are we.

Our Java experts are ready to answer your questions and show you how much you could save by switching to Azul — and how to turn that savings into fuel for your AI roadmap.