Java licensing

Java 17 Licensing: Free Use and Conditions

Java 17 Licensing: Free Use

  • Free Use Conditions: Java 17 is free under the NFTC agreement if only security patches released under this agreement are applied.
  • No Mandatory Updates: Free to use without additional licensing as long as no older updates (after 2-3 years) are applied.
  • Commercial Features: A commercial license is required to utilize features such as Java Flight Recorder, Java Mission Control, Advanced Management Console, and Usage Tracker.

Java 17 Licensing: Free Use and Conditions

Java 17 Licensing Free Use and Conditions

Oracle’s Java SE 17 reintroduced free commercial use under a new “No-Fee Terms and Conditions” (NFTC) license, reversing Oracle’s previous paid-only model. However, this free use is conditional and time-limited.

One year after the next Long-Term Support (LTS) release (Java 21), Java 17’s free updates cease and require a paid subscription.

Enterprises must understand Java 17’s free-use conditions and plan for the end of its no-cost period to avoid unexpected licensing costs and compliance risks.

Oracle Java 17: Free Again, But Not Forever

Oracle’s decision to release Java 17 (in 2021) under a free license marked a major shift in its Java strategy. After 2019, businesses were shocked by Oracle starting to charge for Java updates (starting with Java 8 and 11).

With Java 17, Oracle reinstated free use for enterprises by introducing the NFTC license, which allowed organizations to run Oracle’s JDK 17 without paying fees. This move was a relief for many CIOs and developers, and it encouraged rapid adoption of Java 17 across the industry.

Java 17 remains widely used in enterprises. In 2024, a survey found 37% of organizations running Java 17 in production – more than any other version.

This popularity was fueled by Oracle’s NFTC license, which made Java 17 effectively “free” to use for a time. However, the free period was never intended to be indefinite.

Oracle’s terms specified that one year after the next LTS release (Java 21), free updates for Java 17 would end. In other words, Java 17’s no-cost window was temporary, aligned to Oracle’s LTS cycle.

Understanding Oracle’s No-Fee Terms (NFTC)

The Oracle No-Fee Terms and Conditions (NFTC) license for Java 17 permits individuals or companies to use Oracle JDK 17 for any purpose without paying license fees. This meant you could deploy Java 17 in production environments, on servers or desktops, with no cost to Oracle.

Unlike Oracle’s previous licenses, NFTC placed no restrictions on commercial or “internal business operations” use. For example, a bank or retailer could run their applications on Java 17 and not owe Oracle any royalties under NFTC.

That said, NFTC came with important conditions. Redistribution is permitted only if it’s not for a fee. This means you can bundle or embed Oracle Java 17 with your software or services, but you cannot charge customers specifically for Java itself. (Using Java in a SaaS platform is fine – you’re charging for the service, not the Java runtime.)

Also, NFTC does not include Oracle’s support services or advanced features. It covers the right to use the Java platform.

Still, if you wanted Oracle’s official support or to use certain commercial add-ons (like the Java Management Service or GraalVM Enterprise), those require a paid subscription. In essence, NFTC made the core Java 17 runtime free to use during its initial support period, but only up to a point in time, as we’ll see next.

End of Free Updates for Java 17

Java 17’s free ride expired in late 2024. Oracle is committed to providing free Java 17 updates under NFTC for one year after the release of Java 21 (which was released in September 2023).

This meant that through September 2024, all Java 17 update versions (up to 17.0.12) remained free for all users.

Starting with Java 17.0.13 and later releases, Oracle changed the license back to the Oracle Technology Network (OTN) License for Java 17.

Under the OTN license, Java is only free for certain limited uses (such as personal use, development, and testing), not for general business production purposes. As of Q4 2024, Oracle Java 17 is no longer free for commercial use if you require updates beyond version 17.0.12.

For organizations, this change means you cannot get new security patches for Java 17 without paying Oracle. Oracle JDK 17 versions 17.0.13 and above require a paid subscription (or Oracle’s express permission via OTN for non-production use).

If you continue running an older Java 17 build (e.g., 17.0.8 or 17.0.12), you won’t suddenly be charged for it – those versions remain free under the NFTC terms you originally accepted.

But you will receive no further fixes or security updates on those free versions. Over time, the lack of updates can expose critical vulnerabilities.

Thus, by design, Oracle pushed customers to either upgrade to a newer Java version or start paying for a Java 17 support subscription once the free period lapsed. Java 17 has essentially transitioned from a free LTS to a paid LTS for any enterprise that requires ongoing maintenance.

Enterprise Impact: Compliance and Security Risks

These licensing changes have significant implications for enterprise IT departments. Compliance risk is a major concern.

If a company unknowingly continues to deploy Oracle’s post-2024 Java 17 updates (beyond 17.0.12) without a subscription, it would violate Oracle’s license terms.

Oracle has begun to audit organizations for Java usage, similar to its audits for databases. Companies found to be running Java in production without the proper licenses could face hefty backcharges or penalties.

CIOs and IT asset managers must now treat Java like any other licensed software, tracking versions and entitlements to ensure compliance.

Another impact area is security and technical risk. Many enterprises initially adopted Java 17, expecting long-term free support. Now that free updates have stopped, those who choose not to pay face a dilemma: running an outdated Java runtime.

Over time, critical vulnerabilities in Java 17 will emerge (as they do in all software). If you continue using an old 17.0.12 build indefinitely, your systems may become vulnerable to known security vulnerabilities.

For organizations in regulated or security-sensitive industries, this is not acceptable. The end of free updates forces teams to either upgrade to Java 21 (or later) or find an alternative source of patches. Ignoring the issue isn’t viable – doing so courts both security breaches and non-compliance with internal policies or external regulations.

There’s also a budgetary impact. Companies must now plan for Java licensing costs that were not previously incurred under NFTC. If you decide to stay on Oracle’s JDK, Java becomes a line-item expense going forward.

This can strain IT budgets, especially for large enterprises with many employees or installations (given Oracle’s per-employee pricing model).

The sudden need to allocate potentially six or seven figures for Java support has caught some organizations off guard. All of this means strategic planning is required to manage Java 17 going forward – either by allocating funds for Oracle licenses or by investing time in migrating to alternatives.

Oracle Java SE Subscription Costs and Terms

To continue receiving Java 17 updates (and use Java in production legally) after the NFTC period, Oracle expects customers to purchase a Java SE Universal Subscription.

This subscription provides access to all patches and support, with the cost determined by your organization’s size.

Specifically, Oracle employs an employee-based licensing model, where you must count all employees (including full-time, part-time, contractors, and outsourced personnel) in your company when determining the license count.

Every employee is counted, regardless of whether they personally use Java. This broad metric ensures Oracle captures the full organization under the license.

Oracle’s price tiers (as of 2023) are shown below. The subscription is sold per employee per month, with volume discounts at higher employee counts:

Number of EmployeesPrice per Employee per Month (USD)
1 – 999$15.00
1,000 – 2,999$12.00
3,000 – 9,999$10.50
10,000 – 19,999$8.25
20,000 – 29,999$6.75
30,000 – 39,999$5.70
40,000 – 49,999$5.25
50,000 or moreContact Oracle (custom pricing)

Even at the lower tiers, the costs are substantial. For example, an organization with 2,300 employees falls into the $12 per employee tier, which works out to roughly $ 28,400 per year (2,300 × $12 × 12 months) for Java licensing.

A smaller firm of 500 employees would pay $15 per employee, totaling $ 7,500 per year. As these examples demonstrate, Oracle’s Java subscription can cost hundreds of thousands (or even millions) of dollars per year for larger enterprises. This new per-employee model often ends up significantly more expensive than Oracle’s old per-processor or Named User Plus models.

Many organizations are now paying 2–5 times more for Java under this scheme, according to independent licensing experts.

Such cost impacts are leading businesses to re-evaluate their Java strategies, explore negotiation with Oracle for better terms, or consider alternative solutions to reduce this financial burden.

Alternatives and Strategies for Java 17 Users

Companies running Java 17 have several strategic options to navigate the end of free updates. The best choice will depend on factors like your application compatibility, security requirements, and budget.

Key options include:

  • Stay on Java 17 (no new updates): The simplest short-term option is to continue using your current Java 17 version (up to 17.0.12) and refrain from further updates. This avoids any immediate licensing cost. However, it means accepting that you’ll receive no future security patches or bug fixes on Java 17. This option may be viable as a temporary stopgap while you plan a migration, but it carries an increasing security risk over time. It’s generally not a sustainable long-term solution for production environments.
  • Upgrade to Java 21 LTS (and beyond): Oracle’s latest LTS, Java 21, is also offered under the NFTC license and is free for all uses until at least September 2026 (one year after the next planned LTS release, Java 25). By migrating your applications to Java 21, you regain a free support period and benefit from new features and patches. The catch is that Oracle’s LTS cycle is now two years, so you’ll need to be prepared to upgrade your Java version every couple of years to stay on a freely supported version. This continuous upgrade approach can strain development and testing resources, particularly for large and complex applications. Ensure your teams have a plan to validate and roll out new Java versions regularly if you take this path.
  • Switch to OpenJDK Distributions: Java is also available through open-source builds that do not require any Oracle license. OpenJDK is the open-source reference implementation of Java, and several organizations provide high-quality OpenJDK distributions of Java 17. Examples include Eclipse Temurin (by the Adoptium project), Amazon Corretto, Azul Zulu, and others. These distributions are free to use in production and typically offer ongoing security updates for Java 17 independent of Oracle’s schedule. By switching your Java runtime from Oracle’s JDK to one of these, you can continue running Java 17 with updates without paying Oracle. It’s important to verify the support timeline of the distribution you choose (e.g., some vendors promise to support Java 17 with updates for several years). Many large enterprises have already transitioned to open-source Java builds to avoid vendor lock-in and fees. The functionality of OpenJDK-based JDKs is virtually identical to Oracle’s JDK, since they share the same code base (the differences are usually in the build process and support). This option allows you to stay on Java 17 (if upgrading applications is difficult) while avoiding Oracle’s costs. Keep in mind, though, that if you need enterprise support, you would arrange that with the third-party provider (for example, some companies purchase support from Azul or Red Hat for their OpenJDK deployments at a lower cost than Oracle’s subscription).
  • Purchase an Oracle Java Subscription: If your organization heavily relies on Oracle’s JDK and cannot easily migrate or frequently upgrade, then paying for Oracle’s Java SE Universal Subscription is a straightforward (though costly) solution. An active subscription entitles you to all Java 17 updates beyond 17.0.13, as well as 24/7 support from Oracle’s support team and access to any additional management tools. Some businesses opt for this route for stability and assurances of vendor support. If you pursue this, carefully review your contract terms and usage counts, as the cost is tied to your employee count. Ensure you understand how Oracle defines “employee” and consider negotiating if your environment has unique circumstances. Oracle sales may offer discounts for very large enterprises or multi-year commitments; therefore, it’s wise to engage in license negotiations to seek better rates if you must pursue this path.

Often, organizations use a combination of these strategies. For example, you might upgrade critical systems to Java 21 while moving other workloads to an OpenJDK 17 distribution, thereby minimizing the number of Java instances that require an Oracle subscription.

The key is to proactively choose a path before an audit or security incident forces your hand. With Java 17’s free window closed, every enterprise should now have a clear plan for how they will handle Java runtime updates moving forward.

Recommendations

  • Audit Your Java Usage: Immediately inventory all systems to identify where Oracle Java 17 (or other versions) is in use. Determine which applications are running Oracle’s JDK and what versions (17.0.x) they have. This will clarify your exposure to licensing requirements and security risks.
  • Assess Upgrade Readiness: Evaluate your applications’ compatibility with Java 21 or other LTS versions. If they can run on a newer Java version without significant issues, plan to upgrade before your Java 17 environments become too outdated. Upgrading is the easiest way to stay on a freely supported Java version under Oracle’s model.
  • Consider OpenJDK Alternatives: Compare the costs and benefits of switching to open-source Java distributions. If you don’t have a strict requirement to use Oracle’s build, adopting an OpenJDK distro (and possibly third-party support) can drastically cut costs. Test your key applications on an OpenJDK 17 distribution to ensure they work as expected. Many enterprises find the transition seamless.
  • Budget for Java if Staying with Oracle: If you decide to remain with Oracle’s Java (for example, due to internal policy or support reasons), incorporate the new Java subscription costs into your IT budget and planning. Engage your procurement and vendor management teams to negotiate the best possible terms and conditions. For instance, if you expect growth or have seasonal workers, discuss these factors with Oracle to avoid unnecessarily over-counting employees.
  • Strengthen License Compliance: Treat Oracle Java as you would any other licensed software going forward. Implement controls to prevent developers or administrators from downloading and deploying Oracle JDK updates outside of approved processes. Update your IT asset management records to include the latest Java versions and corresponding licenses. This will prepare you for any future Oracle audit and ensure you stay in compliance.
  • Stay Informed on Java Roadmaps: Oracle plans to release a new LTS every two years (Java 25 in 2025, Java 27 in 2027, etc.). Keep track of these release timelines and Oracle’s licensing announcements. This will help you proactively schedule migrations or renewals. Subscribe to Oracle’s Java roadmap updates or licensing bulletins so you’re not caught off-guard by changes (like Java 21’s impact on Java 17).
  • Evaluate Support Needs: Decide if you truly need Oracle’s support services for Java, or if community support and third-party vendors will suffice. In many cases, critical Java issues are rare, and an open-source solution combined with in-house expertise (or a more affordable support contract from another vendor) can meet your needs. Only pay Oracle’s premium if it aligns with your support requirements and you’re utilizing the benefits.

Checklist

  • 🔎 Identify All Java 17 Installations: Document every instance of Java 17 running in your environment and note its current update version (e.g., 17.0.8, 17.0.12). This scope will show where licensing action may be needed.
  • 📆 Note Free Support Deadlines: For each Java 17 system, mark whether it’s past the free-update threshold (17.0.12). Any planned updates beyond that version will require a decision (upgrade, subscribe, or switch). Prioritize systems that will need near-term updates or patches.
  • 💡 Evaluate Migration Options: Decide for each application whether to upgrade to Java 21+ or transition to an OpenJDK 17 distribution. Create a migration plan with testing timelines for those who can move to free alternatives. For legacy apps that cannot be easily upgraded, outline the risk and mitigation strategies (e.g., isolating the system or purchasing a subscription).
  • 💰 Calculate Licensing vs. Alternative Costs: Model the expected cost of an Oracle Java subscription for your company (based on your employee count) and compare it to the effort/cost of migrating to open-source or upgrading regularly. This cost analysis will inform management and support a business case for whichever route you choose.
  • ✅ Implement Policy and Action: Enforce a policy on Java usage: e.g., use Temurin JDK for new deployments or always upgrade to the latest LTS within 6 months of release. Execute the necessary actions, such as uninstalling Oracle JDK 17 where not required, deploying alternative JDKs, or procuring the Oracle subscription for systems that require it. Ensure that all stakeholders (developers, IT operations, and procurement) are aware of the plan in the future.

FAQ

Q: Is Oracle Java 17 free for commercial use?
A: Yes, but only up to a point. Oracle JDK 17 was free for all uses under the NFTC license from its release in 2021 until September 2024. This allowed businesses to run Java 17 in production at no cost during that period. However, after late 2024, Oracle will no longer provide free updates for Java 17. To continue using updated versions of Java 17 in commercial environments now, you need to either upgrade to a newer free version or purchase a Java SE subscription. Simply put: Java 17 is free to use if you’re on an older build, but any new updates or patches for Java 17 require a paid license.

Q: What were the conditions of the Java 17 “No-Fee” license?
A: The NFTC license for Java 17 permitted free use in any setting – development, testing, and production – with no financial obligation to Oracle. The main conditions were non-monetary: Oracle allowed the redistribution of Java 17 only if no fee was charged for Java itself (you couldn’t sell Oracle Java as part of a product), and the free usage was time-limited to the support period. Importantly, the NFTC is essentially a use license, not a support contract – it gave you the right to use Oracle JDK 17 for free, but only until one year after the next LTS release. After that point, the license automatically reverted to a more restrictive type (the OTN license). While NFTC removed cost barriers, it required users to accept that free updates would cease after a certain date.

Q: Now that Java 17’s free period has ended, do we need to pay Oracle?
A: Not necessarily – but you need a plan. If your organization wants to keep using Java 17 with the latest security patches, you would need to start paying for an Oracle Java SE subscription (since new Java 17 updates are no longer free). However, you have alternatives: you can upgrade to Java 21 (which is free under NFTC until 2026) to stay on a free supported version, or switch to an OpenJDK 17 distribution from another provider to continue getting free updates. Some companies opt to continue using the last free Java 17 update (17.0.12) without paying, but this leaves them running outdated software. The best course of action is to either migrate to a supported, free path (new LTS or open-source) or budget for the subscription if you absolutely must remain on Java 17 and receive updates. Evaluate your applications – if they run fine on Java 21 or an open JDK, you can avoid paying Oracle.

Q: How does Oracle’s Java subscription pricing work, and how expensive is it?
A: Oracle’s Java SE Universal Subscription is priced based on your total number of employees, not on the number of Java installations or users. The list price is $15 per employee per month for organizations with fewer than 1,000 employees, with the per-employee rate decreasing in tiers for larger companies (down to ~$5.25 at ~40,000 employees). In practice, this can be quite expensive. For example, a firm with 2,000 employees would pay around $288,000 per year at list prices, and a larger enterprise with 10,000 employees might pay close to $1 million annually for Java. This pricing covers usage across any number of devices and includes support, but you pay for your whole workforce. It’s important to note that every person on your payroll counts toward the license, even if only a fraction of them use applications that rely on Java. Organizations need to weigh this cost against the alternatives (like using free OpenJDK or upgrading regularly) to decide if Oracle’s subscription is worth it.

Q: What alternatives exist to avoid Oracle’s Java licensing fees?
A: There are a few strong alternatives: First, you can use OpenJDK-based distributions of Java 17 that are free and open source. Projects like Eclipse Temurin (Adoptium) and Amazon Corretto provide Java 17 builds with ongoing updates, which you can use as replacements for Oracle JDK without incurring any fees. Many companies have switched to these to stay on Java 17 securely without incurring Oracle costs. Second, you can upgrade to Java 21 (or the latest LTS) from Oracle, which resets the clock on free usage (Java 21 is free for a few years under NFTC). This requires ensuring your applications are compatible with Java 21, but it keeps you on Oracle’s officially supported track at no cost for now. Lastly, if you need professional support but want to avoid Oracle, consider third-party Java support vendors. Companies like Azul and Red Hat offer their own supported JDKs (e.g., Azul Platform Core, Red Hat build of OpenJDK), often at lower subscription costs or as part of existing support agreements. These options allow you to continue using Java without Oracle’s direct involvement, significantly reducing or eliminating licensing fees while still receiving necessary updates.

Do you want to know more about our Java Audit Advisory Services?

Please enable JavaScript in your browser to complete this form.
Name

Author

  • Fredrik Filipsson

    Fredrik Filipsson brings 20 years of dedicated Oracle licensing expertise, spanning both the vendor and advisory sides. He spent nine years at Oracle, where he gained deep, hands-on knowledge of Oracle’s licensing models, compliance programs, and negotiation tactics. For the past 11 years, Filipsson has focused exclusively on Oracle license consulting, helping global enterprises navigate audits, optimize contracts, and reduce costs. His career has been built around understanding the complexities of Oracle licensing, from on-premise agreements to modern cloud subscriptions, making him a trusted advisor for organizations seeking to protect their interests and maximize value.

    View all posts