
Oracle Java Licensing Changes in 2021
In 2021, Oracle introduced a major change to its Java licensing model by releasing Java 17 under a new No-Fee Terms and Conditions (NFTC) license.
This shift temporarily made Oracle Java free for commercial use, reversing the previous subscription-only model. Enterprises gained short-term relief from Java licensing costs, but the change came with a built-in deadline, forcing organizations to plan before the free period expires.
Background: Java Licensing Before 2021
For many years, using Oracle’s Java SE in business environments was free under Sun’s old licenses. That changed in 2019 when Oracle began requiring paid subscriptions for commercial Java use.
Under the Oracle Technology Network (OTN) license (introduced in 2019), only specific uses of Java were free (personal, development, testing), while any production or internal business use demanded a Java SE Subscription.
In practice, this meant:
- Companies had to pay for Oracle Java updates and support for Java 8 (after public updates ended in 2019) and for Java 11 (released as a long-term support version in 2018).
- Oracle sold Java SE subscriptions on a per-user or per-processor basis. For example, Java on desktops was about $2.50 per user per month, and on servers, about $25 per processor per month (list pricing). These fees could quickly add up to tens of thousands of dollars annually for mid-sized firms.
- Organizations not compliant (using Oracle JDK in production without a subscription) faced audit risks and potential back-licensing fees. Oracle’s License Management Services ramped up Java compliance audits after 2019, pressuring businesses to either pay or switch to alternatives (like free OpenJDK builds).
By 2021, many enterprises were either paying hefty Java subscription costs or migrating to open-source Java alternatives to avoid fees. This was the backdrop against which Oracle unveiled a new licensing approach.
The 2021 Shift – Oracle’s No-Fee Terms and Conditions (NFTC)
September 2021 marked a pivotal shift: Oracle released Java 17 (the next Long-Term Support (LTS) version) under a No-Fee Terms and Conditions license.
In essence, NFTC made the latest Oracle JDK free to use for all users, including businesses, with no upfront license cost.
This represented a significant departure from the previous model.
Key points of the NFTC license for Java 17 include:
- Free Commercial Use: Companies could deploy Oracle Java 17 in production and “internal business operations” without paying Oracle license fees. This applied to running Java applications on servers and desktops, which previously required a paid subscription.
- Free Security Updates: Oracle is committed to providing regular quarterly Java 17 security patches and updates at no cost during the NFTC period. Businesses could stay current with Java 17’s critical fixes without a support contract.
- Temporary License Term: The NFTC was explicitly time-limited. Oracle tied the free period to Java’s release cycle: Java 17 would remain free until one year after the next LTS release. With Oracle moving to a two-year LTS (Long-Term Support) cadence, this meant that Java 17’s free updates would expire in September 2024. After that date, any new Java 17 updates would fall back under a paid license (the OTN/subscription model) or require moving to a newer version.
In simple terms, Oracle hit the “pause” button on Java licensing fees for Java 17, creating a three-year free window (2021–2024) for organizations to upgrade and use the latest version of Java without incurring immediate costs. However, this was not a permanent reversal – it was a grace period with an end date.
How Java 17 Licensing Differs from Earlier Versions
The NFTC license, introduced in 2021, significantly altered the Java licensing landscape compared to Java 8 and Java 11.
The table below summarizes the differences in license models and costs for Oracle Java LTS versions:
Java Version | Release & License Model | Commercial Use | Security Updates |
---|---|---|---|
Java 8 LTS | Released 2014; OTN license (after 2019) | Paid subscription required for business use (after Jan 2019) | Public free updates ended 2019. Further updates only via paid subscription. |
Java 11 LTS | Released 2018; OTN license | Paid subscription required for commercial use (from release) | No-cost updates very limited. Ongoing updates required a subscription or support contract. |
Java 17 LTS | Released 2021; NFTC license | Free for all use until NFTC expires (no subscription needed) | Free quarterly patches provided by Oracle until Sep 2024 (end of free period). |
What this means in practice: Before 2021, an organization running, say, Java 8 or 11 in production had to budget for Oracle’s subscription. For example, 1,000 desktop Java users would incur roughly $30,000 per year in subscription fees at list prices.
With Java 17 under NFTC, that same organization could upgrade to Java 17 and pay $0 in license fees for the duration of the NFTC period. Oracle essentially gave a temporary free pass to use its latest Java version, something unheard of since the 2019 policy change.
It’s important to note that this free use applies only to Java 17 (and later versions) released under NFTC.
Older versions (Java 8, 11) did not become free – if a company stuck with those in 2021, it still needed a subscription for updates. NFTC was a forward-looking license change that encouraged users to upgrade to the latest Java.
Why Oracle Introduced NFTC in 2021
Strategic considerations drove Oracle’s decision to pivot to a no-fee license for Java 17.
The likely motivations included:
- Accelerating Java Upgrades: Oracle aimed to encourage organizations to migrate from older Java versions (8 and 11) to the latest release. By removing the cost barrier, enterprises had an incentive to upgrade to Java 17 sooner rather than later.
- Reducing Fragmentation: After the 2019 licensing changes, many companies were hesitant to move beyond Java 8 or 11, or they switched to other providers’ OpenJDK builds. NFTC aimed to unify the user base on the newest Java, reducing fragmentation and demonstrating Oracle’s continued relevance in the Java ecosystem.
- Competitive & Community Pressure: Oracle faced backlash and competitive pressure from the open-source community. Free OpenJDK distributions (from AdoptOpenJDK, Amazon Corretto, etc.) gained popularity as companies sought to avoid fees. The NFTC free model in 2021 can be seen as Oracle’s response to community feedback, restoring some goodwill by making Oracle JDK “free” again (albeit with conditions).
- Future Revenue Strategy: The NFTC period was also a strategic bet on future subscriptions. Oracle essentially offered a free trial for a few years, anticipating that after 2024, many organizations would either:
- Resume paying – if they stay on Java 17 and need updates/support (creating a new subscription revenue stream), or
- Continuously upgrade to the latest LTS every two years (an adoption pattern Oracle could monetize in other ways, or eventually prompt support sales).
- Audit and Compliance Simplification: With NFTC, Oracle may have also been addressing the practical difficulty of enforcing Java licensing. Auditing every Java installation was challenging. By making the current version free, Oracle reduced compliance friction in the short term, focusing compliance efforts on older versions and laying the groundwork for the new enterprise-wide subscription model that would emerge later.
In summary, Oracle’s 2021 move was as much about market strategy as customer relief: it traded short-term license revenue for broader Java 17 adoption and a potential larger payoff when the free period ended.
Impact on Enterprises and Cost Implications
For enterprise IT leaders and software asset managers, the 2021 licensing change was a welcome reprieve. Organizations running Java gained an opportunity to cut costs immediately:
- Companies paying for Java SE subscriptions may consider dropping or reducing their subscription counts by migrating workloads to Java 17. Real-world example: A financial services firm with hundreds of Java 11 installations was able to upgrade them to Java 17 in late 2021, thereby saving what had been a six-figure annual Java licensing expense. For the next three years, they incurred no Java licensing fees under NFTC – a direct boost to the IT budget.
- Businesses that had postponed Java updates due to cost now had a green light to update to Java 17 LTS for free, improving their security posture (since they could apply Java 17’s patches quarterly without cost). This was especially important for organizations stuck on Java 8; NFTC provided a path to modernize without immediate financial impact.
- Those who had already transitioned to open-source Java (OpenJDK) were less directly affected – they weren’t paying Oracle anyway. However, even some of these organizations reconsidered Oracle JDK 17 because it combined Oracle’s official builds with no license fee, essentially aligning with the cost of OpenJDK but with Oracle’s branding and distribution.
Despite these benefits, the impact was not uniformly positive for everyone:
- Organizations had to ensure they understood the fine print. The NFTC license allowed free use but did not include Oracle’s support services. Enterprises that require 24/7 vendor support or indemnification still needed a paid support contract or had to self-support. In other words, Oracle provided free updates but offered no guarantee of assistance if issues arose in production.
- The free period created a potential false sense of security. Some teams mistakenly interpreted “Java is free again” as a permanent change. In reality, it was a temporary holiday. Software asset managers needed to educate stakeholders that license costs would return once the NFTC window closed.
From a contract negotiation perspective, the change in 2021 shifted temporary leverage toward customers.
Enterprises could use the option of staying on free Java 17 as a bargaining chip in Oracle negotiations (for example, pushing back on Java renewal quotes by saying they will use Java 17 NFTC instead). But everyone knew this leverage had an expiration date.
Temporary Relief, Looming Deadline (NFTC Expiration in 2024)
Oracle’s NFTC licensing for Java 17 came with a ticking clock. The free use period ends in September 2024, one year after Java 21 (the next LTS) was released in 2023.
This deadline has significant implications:
- End of Free Updates: After the cut-off date, Oracle will cease providing free public updates for Java 17. Any new security patches or bug fixes beyond that point will be available only to paying customers (through a Java SE subscription or support agreement). Java 17 effectively reverts to the old OTN license terms.
- Renewed License Costs: Organizations that choose to stay on Java 17 past 2024 must be prepared to purchase Oracle Java subscriptions again to remain compliant and secure. Those costs can be substantial, potentially higher than before if Oracle adjusts pricing (and indeed, Oracle introduced a new Universal Subscription model in 2023 based on employee count, which can raise costs for many).
- Security Risk if Ignored: If a company does nothing, continuing to run Java 17 without updates, they will avoid fees but accumulate security and compliance risk. Running an outdated Java version after 2024 means exposure to unpatched vulnerabilities – a serious concern for enterprise applications. It also means being out of compliance with Oracle’s license, as using Oracle JDK 17 in production without a subscription (after the free period) would violate the terms.
- Upgrade Pressure: Oracle’s intent is clear – push users to keep upgrading. When Java 21 was released (under NFTC as well), the clock started for Java 17. Enterprises are effectively nudged to migrate to Java 21 by 2024 to continue on a free-upgrade path. This creates a new kind of upgrade treadmill: upgrade every LTS cycle (~every two years) to stay on a free Oracle JDK, or pay up.
Thus, the “holiday” from Java fees comes with a hard stop. Organizations should mark September 2024 on their calendars and have a game plan well in advance of that date. The 2021 change gave breathing room, but also a responsibility to use that time wisely.
Strategic Options for Java Users After the Free Period
With the free period expiring, enterprises must decide how to proceed. As an Oracle licensing expert would advise, there are a few strategic options:
- Option 1: Pay for Oracle Java Subscription – If an organization wants to stay on Java 17 (or any older LTS) and continue receiving updates/support from Oracle, it will need to budget for a Java SE Subscription once the NFTC period ends. Oracle’s subscription could be under the traditional per-core or per-user model (if renewing an existing deal) or the newer per-employee Universal model. This option ensures ongoing security patches and vendor support, but at a significant cost. Enterprises should prepare for negotiations with Oracle and explore volume discounts or enterprise agreements if they opt for this route.
- Option 2: Upgrade Continuously to New LTS Releases – Another approach is to adopt a policy of upgrading to each new Java LTS version that Oracle releases. For example, move from Java 17 to Java 21 by 2024, then to Java 25 by 2026, and so on. Oracle has indicated it will license these new LTS versions under NFTC during their initial support period. This way, a company can theoretically stay on free Oracle JDK releases indefinitely by always being on the latest LTS. The upside is avoiding subscription costs; the challenge is the operational overhead of frequent upgrades and testing. Enterprises will need robust DevOps processes to validate new Java versions and update applications regularly.
- Option 3: Migrate to Open-Source Java or Third-Party Distributions – Many organizations will evaluate moving away from Oracle’s JDK altogether. There are mature OpenJDK-based distributions (Eclipse Temurin, Red Hat OpenJDK, Amazon Corretto, Azul Zulu, etc.) that are free to use and offer timely updates for Java LTS releases. Some of these vendors provide commercial support at a fraction of Oracle’s cost. By switching to an alternative JDK, companies can avoid Oracle’s licensing traps entirely. The code is virtually identical (Java is Java), but due diligence is needed to ensure compatibility and support. This option often appeals to firms that value long-term cost stability and want to minimize dependence on Oracle in their IT stack.
- Option 4: Do Nothing (Not Recommended) – An organization could choose to simply run Java 17 past 2024 without updates or payment. While this incurs no immediate cost, it’s highly risky. Over time, unpatched Java vulnerabilities could expose critical systems. And if Oracle audits the company’s Java usage, running Oracle JDK outside the NFTC terms could result in compliance penalties. This path is generally not advised except perhaps for isolated legacy systems that won’t be updated and are not business-critical (and even then, a plan to decommission or isolate them is needed).
Most enterprises will adopt a mix of these strategies across their application portfolio.
For example, they might upgrade important apps to Java 21 (staying on free Oracle JDK), migrate less critical ones to OpenJDK, and purchase a small number of Oracle subscriptions for any systems that truly require Oracle’s direct support or specific commercial features.
The key is to proactively decide on a strategy well before the free period lapses, rather than reacting at the last minute.
Recommendations
To navigate Oracle’s 2021 Java licensing changes successfully, organizations should adopt a proactive and strategic approach.
Here are key recommendations for enterprise IT and procurement teams:
- Upgrade to Java 17 (or latest LTS) if you haven’t already – Take advantage of the no-fee license period. Upgrading sooner secures free usage and buys time before any fees.
- Track the Clock – Set a 2024 Deadline – Establish an internal deadline for when Java 17’s free period ends (September 2024). Use this as a planning milestone for decisions on subscription or upgrades. Don’t let that date sneak up on you.
- Inventory Your Java Usage – Conduct a thorough audit of all Java installations (version, where it’s used, and whether it’s Oracle’s build). This helps determine how much of your environment can leverage NFTC and what remains on older versions that may still incur costs or risk.
- Evaluate Alternatives – Assess whether non-Oracle Java distributions could meet your needs. If Oracle’s future costs look too high, plan a migration to OpenJDK or a vendor-supported Java distribution well before the deadline.
- Engage Stakeholders Early – Communicate with application owners and developers about the Java roadmap. Ensure they test applications on newer Java versions (e.g., Java 17 or 21) to ensure smooth upgrades and prevent critical systems from breaking.
- Prepare for Negotiations – If you anticipate needing Oracle Java subscriptions (now or post-2024), start budgeting and negotiating with Oracle early. Oracle may offer incentives or discounts for early renewal or enterprise agreements – leverage the fact that you have the option to stay free on the latest Java to negotiate better terms.
- Stay Informed on Licensing News – Oracle’s Java licensing policies continue to evolve. Keep an eye on Oracle announcements and industry advisories. Further changes (like new pricing models or extensions of free periods) could occur; being informed will help you adjust your strategy quickly.
- Segregate and Optimize – Not All Java Workloads Are Equal. You may decide to pay for Oracle Java in certain cases (e.g., where a third-party vendor application officially requires Oracle JDK support), but use free or open-source Java for other purposes. Segmentation can optimize cost and compliance. Document where you are using Oracle’s JDK vs alternatives, and ensure compliance accordingly.
- Institute Governance for Java – Treat Java like any other licensable asset. Establish governance procedures to review new Java deployments for license implications. For instance, define a policy that new applications use an OpenJDK distribution unless there’s a compelling reason to use Oracle JDK. This reduces unintentional non-compliance.
Following these recommendations will help enterprises mitigate financial risk, avoid compliance pitfalls, and maintain the security and up-to-date status of their Java-based systems under Oracle’s evolving licensing regime.
Checklist: 5 Actions to Manage the 2021 Java Licensing Change
- Create a Java Inventory – List all servers, VMs, and desktops running Java, noting the version (e.g., 8, 11, 17) and distribution (Oracle or OpenJDK). Include Java embedded in third-party applications. You can’t plan if you don’t know where Java is used.
- Assess Current Licensing – Determine which installations currently require an Oracle Java license. Are you paying for any Java 8 or 11 subscriptions? If so, identify which systems they cover and see if those can be upgraded to Java 17 to eliminate costs. Also, confirm if any contracts or Oracle orders are in place for Java, noting their renewal dates.
- Upgrade and Test – For each internal application running on older Java versions, develop a plan to upgrade to Java 17 (or later). Prioritize critical apps and those that are easy to upgrade. Begin testing your applications on Java 17 LTS to catch any compatibility issues early. Aim to complete major upgrades well before the free period ends.
- Decide Post-2024 Path – Formulate your strategy for each Java workload after September 2024. Options include: moving to Java 21 LTS (to extend free usage), purchasing Oracle support for Java 17, or migrating to a non-Oracle Java distribution. Document the decision for each system. For example: “Application X – will move to OpenJDK by Q4 2023; Application Y – stay on Oracle Java and budget for subscription in 2024; Application Z – upgrade to Java 21 as soon as available.”
- Educate and Communicate – Share the plan and policies with relevant teams: developers, IT operations, procurement, and security. Ensure that everyone understands that Oracle Java 17’s free support period ends in 2024. Update internal guidelines so new projects know which Java version to use. By raising awareness, you reduce the chance of unintentional non-compliance (like someone deploying an outdated Oracle JDK without approval).
Using this checklist, organizations can systematically address the 2021 Java licensing change, ensuring they capitalize on the benefits while preparing for the eventual return of licensing requirements.
FAQ
Q: What exactly changed with Oracle Java licensing in 2021?
A: In 2021, Oracle introduced the No-Fee Terms and Conditions (NFTC) license with Java 17. This change made Oracle’s Java 17 free to use (even in production) and provided free security updates for a limited time (until one year after the next LTS release). It was a departure from the previous policy that required a paid subscription for using Oracle Java in business environments.
Q: Is Java 17 completely free for commercial use forever?
A: No, it’s free but not forever. Oracle Java 17 is free for commercial use under the NFTC license until September 2024. After that, Oracle will no longer provide free updates, and continuing to use Oracle JDK 17 in production will require purchasing a Java SE subscription (or accepting that you will not receive any further updates). In short, Java 17 was free for about three years to let you upgrade, but it doesn’t stay free indefinitely.
Q: Do we need to pay for older Java versions (Java 8 or 11) after 2021?
A: Yes. The 2021 licensing change did not make Java 8 or Java 11 free for commercial use. Those versions remained under Oracle’s prior license (OTN), which requires a paid subscription for business use (unless you only use them for development or personal purposes). If your systems are running on Java 8 or 11 and you require updates/patches, you will still need to pay for an Oracle Java SE subscription or use an alternative Java provider. The NFTC free license was only applicable to Java 17 (and later LTS versions when they were released).
Q: What happens when Java 17’s free period (NFTC) ends in 2024?
A: When the free period ends, a few things occur:
- Oracle will stop releasing free public updates for Java 17. Any new critical patches or improvements won’t be available to you unless you’re a paying customer.
- Legally, the license terms revert to the standard OTN agreement, meaning using Oracle JDK 17 in production without a subscription would violate the terms after that point.
- Your organization will need to decide whether to upgrade to a newer Java version (such as Java 21, which will be free under NFTC for a limited time), purchase a Java subscription to stay on Java 17 with updates, or switch to another Java distribution to remain secure and compliant. Essentially, the “free ride” ends, and you must take action – either pay or move on.
Q: How can we avoid or minimize Oracle Java licensing costs in the future?
A: To reduce Oracle Java costs, consider these approaches:
- Stay on the latest Java LTS with NFTC – Plan to upgrade your Java applications to each new LTS release that Oracle makes free for its initial period. This way, you continuously use a version that’s under a free license (though you’ll need a solid process for frequent upgrades).
- Use OpenJDK or other distributions – Evaluate open-source Java implementations (such as OpenJDK builds) provided by other vendors. These are typically free to use in production. Some vendors offer support at lower costs than Oracle. Migrating to such alternatives can eliminate Oracle licensing fees, with minimal technical changes (since Java standards are the same).
- Only pay where truly necessary – If certain critical systems require Oracle’s official support or features, you might license just those, and use free options elsewhere. Optimize your licensing scope: for example, purchase Oracle Java subscriptions for a critical production cluster that requires Oracle’s support, but deploy OpenJDK for development, testing, and less critical applications.
- Negotiate enterprise deals – If you have a large Java footprint and Oracle is crucial to you, consider negotiating a custom agreement. Oracle sometimes offers discounts or broader enterprise agreements that can be more cost-effective than purchasing subscriptions individually. Use the fact that you have alternatives as leverage in negotiations.
Overall, staying informed and flexible is key. Many enterprises adopt a hybrid approach – some Oracle Java where needed, and open-source Java for everything else – to strike the right balance of cost, support, and risk.
Read about our Java Advisory Services.