Java NFTC License Agreement
- Free Use: Allows end customers to use Java for free.
- Non-Commercial Use: Permits personal, development, and internal business applications without licensing fees.
- Distribution Restriction: Prohibits free redistribution of Java binaries.
- Commercial License Needed: Required for distributing Java as part of commercial products.
- Exceptions: Free if deployed on Oracle Cloud Infrastructure or as part of another Oracle product.
Java NFTC License Agreement
Oracle’s Java No-Fee Terms and Conditions (NFTC) license allows organizations to use Oracle Java without paying license fees in many cases, including production use, as long as specific conditions are met.
This article explains what the NFTC covers and where it draws the line, outlining permissible free uses (like internal business applications), restrictions on redistribution, and scenarios that still require a paid Oracle Java license.
It provides practical guidance, real-world examples of costs, and recommendations to help enterprises leverage Java under NFTC while minimizing compliance risks.
Oracle’s Java NFTC license outlines key terms for the free use of Java in enterprises. It specifies the rights it grants and conditions attached, such as restrictions on redistribution and the scope of commercial use allowed.
This licensing approach enables free internal and many commercial Java deployments, provided organizations follow Oracle’s terms and do not charge others for the Java software itself.
Understanding Oracle’s Java NFTC License
The NFTC license is Oracle’s framework, introduced in 2021, that offers Java at no cost for certain usage scenarios.
It permits free use of Oracle JDK for all users – even in commercial, production environments – provided you adhere to Oracle’s conditions.
Unlike Oracle’s traditional Java SE subscription (which can be costly and was previously required for business use of Java), the NFTC model lets companies avoid subscription fees in exchange for following strict rules on how Java is used and distributed.
In essence, Oracle Java can be “free” under NFTC, but only for defined purposes and timeframes.
Key Characteristics of NFTC:
- No License Fees (with Conditions): Oracle JDK can be used without paying royalties or subscriptions if your use falls within NFTC’s allowed scope. This includes running Java in production internally, which historically required a paid license, now free under NFTC rules.
- All Users Covered: The NFTC applies to individuals, businesses, and commercial entities alike. There is no requirement to sign a contract or click-through agreement for NFTC-covered Java versions – you simply download Oracle JDK under NFTC terms.
- Limited Duration of Free Updates: Importantly, NFTC is not indefinite. Oracle provides Java updates under NFTC for a limited period (for example, an LTS release, such as Java 17, had free public updates for three years). After that period, the license terms for that version revert to a more restrictive license (requiring a paid support subscription for further updates). Enterprises must stay on the latest NFTC-covered release or purchase a subscription once the NFTC term ends for a given Java version.
Oracle’s motivation with NFTC was to lower barriers for Java use (encouraging adoption of the latest Java versions) while still reserving the ability to charge for long-term support or certain commercial distributions. For organizations, NFTC can eliminate Java licensing costs if usage is managed within the allowed boundaries.
Permitted Free Uses Under NFTC
The NFTC license explicitly defines the types of use that are allowed without incurring any fees. These mainly involve non-commercial and internal uses of Java.
In practice, this covers a broad range of everyday scenarios in development and business operations:
- Personal and Hobbyist Use: Individuals can freely use Oracle Java on their machines for non-commercial purposes. For example, a developer tinkering with Java at home, a student learning to code, or someone running a personal project can download and use Java under NFTC with no cost. Any home or educational use not intended for profit falls in this category.
- Development and Testing (Non-Production): Companies can use Oracle JDK under NFTC for in-house development, testing, and QA environments. Software engineers can build and test applications on Oracle Java without needing a paid license, as long as the Java instances aren’t running live commercial services. For instance, an internal development or test server running Java is covered by NFTC. This encourages the use of the latest Oracle JDK in development pipelines without licensing friction.
- Internal Business Applications (Production): Perhaps most significantly, NFTC enables the use of Java in production for internal business operations at no additional cost. This means if you deploy Java-based applications that are used within your organization (by your employees or internal systems) and you are not distributing the software outside the company, you do not owe Oracle any licensing fees. Examples: an HR system, a finance reporting tool, or an intranet application built on Java and used by staff internally can run on Oracle JDK free of charge. Even though these are “commercial” in the sense that they support a business, Oracle considers them non-commercial use because they are not provided to external paying customers.
- Third-Party Service Use (Hosted Applications): NFTC also covers scenarios where you run a Java application as a service for others, as long as you don’t give those third parties the Java software itself. In other words, hosted services or Software-as-a-Service (SaaS) built on Java are allowed under NFTC even if you charge users to use your application, because the customers are only accessing your service, not receiving Oracle’s Java binaries. Oracle deems this “internal use,” so a web application or cloud service you operate on Oracle Java (where users interact via web/browser and never install Java) is within NFTC’s free use terms. This is a crucial allowance that enables many businesses to run customer-facing Java server applications without a license fee, provided they keep the Java runtime on the server-side only.
To summarize, NFTC’s free usage covers almost any use of Oracle Java inside your organization or data center, whether for development, testing, or even running production workloads, as long as you are not externally redistributing Oracle’s Java software.
It removes the need for a paid license in these common scenarios, effectively making Oracle JDK “free” for most internal purposes.
Restrictions and When a Paid Java License Is Required
While NFTC is generous in scope, it comes with clear restrictions. Crossing these lines means NFTC no longer covers your Java usage, and you must purchase a commercial license (usually an Oracle Java SE subscription or a special agreement).
Key situations not covered by NFTC include distribution and certain commercial deployments:
- No Redistribution for a Fee: Oracle strictly prohibits redistributing Oracle JDK to third parties as part of NFTC if any fee is involved. You cannot bundle Oracle Java with an application or device that you sell to customers. For example, if you develop a commercial software product or an IoT appliance that requires Java, you are not allowed to package Oracle’s JDK with it under NFTC. Even if you don’t separately charge for Java, including it in a product that customers pay for is considered “redistribution for a fee.” In such cases, you would need to obtain a commercial Java license from Oracle (often an OEM agreement or Java SE subscription) to legally redistribute the Java runtime with your product.
- Internal Use vs. External Distribution: NFTC draws a line at your organization’s boundary. Java usage that remains internal (or behind a cloud service) is free. However, if you provide Oracle Java to others outside your organization, whether by embedding it in delivered software, downloading it on client machines, or any other form of distribution, NFTC no longer applies. A simple rule is: third parties should not receive Oracle’s Java binaries from you under NFTC. If your solution needs Java, you can ask your customers to download Oracle Java themselves or use an open-source Java, but you can’t ship Oracle JDK to them for free.
- Separate Oracle Services Not Included: NFTC only covers the core Java runtime. Oracle features, such as the Java Management Service (for managing Java installations) or Oracle’s GraalVM Enterprise, are outside the NFTC; they require their respective licenses or an Oracle Java subscription. Similarly, support services (the ability to contact Oracle for support or get long-term updates) are not included for free under NFTC.
Table: Common Java Use Cases – Covered by NFTC or Not
Use Case | Covered by NFTC? | Notes |
---|---|---|
Personal or hobby projects (non-commercial) | Yes ✅ | Free for individual use, education, and hobbies. |
Internal business applications (in-house use) | Yes ✅ | Free for internal production use within company. |
Development and testing (non-production) | Yes ✅ | Free for developing and testing software internally. |
Public SaaS or web service (Java on server) | Yes ✅ | Allowed if users access your service only (no distribution of Java). |
Bundling Java with a product for sale | No ❌ | Not covered; requires a paid license or OEM agreement to embed Java. |
Distributing Oracle JDK to third parties | No ❌ | Not allowed unless Java is provided at no charge; commercial distribution requires licensing. |
Using Oracle Java after free update period | No ❌ | Not covered once public free updates end for that version; a subscription is needed for continued patches/support. |
As shown above, any scenario involving the provision of Oracle Java to external parties or continuing to use it beyond its free update window will trigger the need for a commercial license.
For instance, an independent software vendor (ISV) packaging Oracle JDK with their paid software must negotiate a Java distribution agreement or ensure each customer has their own Oracle Java license.
Similarly, if you want to keep running an older LTS Java version after Oracle stops providing free updates for it under NFTC, you would need to pay for a Java SE subscription to receive further security patches (or else run it unsupported, which is risky).
Limited Free Support Period (Update Timeline)
Enterprises must be aware that NFTC is not a perpetual free pass – Oracle’s free usage comes with a time limitation tied to Java release cycles.
Oracle releases new Java versions regularly (including Long-Term Support versions every couple of years), and NFTC only covers updates for a given Java version for a defined period:
- Latest Release Incentive: Oracle uses NFTC to incentivize staying on the latest Java. For each new Long-Term Support (LTS) version of Java, Oracle provides updates under NFTC until one year after the next LTS version is released. In practice, this typically spans a two- to three-year window of free updates. For example, Java 17 (released in 2021) was free under NFTC for all users through September 2024. After that date (one year after Java 21’s release), Oracle no longer provides public free patches for Java 17, meaning to get further updates or support for Java 17, an organization would need to purchase a Java subscription or upgrade to Java 21.
- Upgrade to Stay Free: Once the free period ends, the license terms for that Java version revert to Oracle’s more restrictive OTN (Oracle Technology Network) license for Java, which does not allow free production use. The practical effect is that if you want to remain compliant and avoid paying, you must upgrade your Java installations to the newer LTS version that is still under NFTC-free support. In our example, a company using Java 17 in production would need to migrate to Java 21 by late 2024 to continue getting free security updates. If they stayed on 17 without paying, they’d be running outdated software or violating license terms.
- No-Cost vs. Paid Support: It’s essential to note that NFTC grants the right to use Java and receive public updates within the defined period, but it does not include any support agreement with Oracle. There is no Oracle support line or hotfix service for NFTC users. If your business needs guaranteed support or an extended patch timeline (beyond the NFTC window), that’s where the paid Java SE Subscription comes in. NFTC is essentially Oracle saying, “You can use Java for free for now, but you’re on your own if something goes wrong unless you pay us.”
For enterprises, planning your Java upgrade cycle is crucial. You can save significantly on license costs by using NFTC, but you have to stay on Oracle’s upgrade treadmill – roughly every two years, moving to the latest LTS.
Organizations with slow upgrade processes or strict application compatibility requirements must consider this when developing their strategy, as falling behind can turn your “free” Java into a potential compliance gap or security risk.
Oracle Java SE Subscription Costs (When You Must Pay)
If your Java usage falls outside NFTC’s free allowances, or you simply want Oracle’s support and longer update coverage, you will need to budget for Oracle’s Java SE licenses.
In 2023, Oracle introduced a new Java SE Universal Subscription model that charges per employee (rather than per device or processor).
This can represent a significant cost, especially for large organizations, so understanding the pricing is key for cost planning and negotiation.
Oracle Java SE Subscription – Pricing Model: (list prices as of 2023)
Enterprise Size | Cost per Employee (per month) |
---|---|
1 – 999 employees | $15 per employee |
1,000 – 2,999 employees | $12 per employee |
3,000+ employees | $10 or less (volume discounts available) |
In this model, the fee applies to all employees in your organization, regardless of how many use Java. For example, a company with 500 employees would pay about $7,500 per month (500 × $15) or $90,000 per year at list price for Java SE subscriptions – even if only a handful of those employees directly work with Java.
A larger company with 2,000 employees would see costs around $24,000 per month (at $12 each). These costs can add up quickly, which is why avoiding the need for these licenses (via NFTC or other means) is financially attractive.
It’s worth noting that Oracle’s subscription does come with benefits, including access to all patches (including older versions), technical support, and the right to use Java in any context (with no NFTC restrictions).
However, many enterprises find the cost steep, especially if they have a large number of employees compared to the number of Java applications.
Oracle’s broad definition of “employee” (including part-time and contract workers) means compliance can become expensive. Therefore, using Java under NFTC, where possible, can save costs.
If a commercial license is truly needed, companies often try to negotiate terms or consider reducing the Java footprint to lower the expense.
Exceptions and Special Cases
Oracle has built a couple of exceptions into the NFTC and Java licensing policies, which enterprises should know:
- Oracle Cloud Infrastructure (OCI): If you run your Java workloads on Oracle’s cloud platform (OCI), Oracle allows the use of Oracle Java for free on those cloud instances. Essentially, the cost of Java licensing is bundled into the OCI service, so an application deployed to Oracle Cloud can use Oracle JDK without a separate Java license. This is a strategic move by Oracle to attract customers to its cloud. Note that this exception is specific to Oracle’s cloud; running Java on third-party clouds like AWS or Azure confers no special rights (it’s treated the same as on-premise usage under NFTC rules, meaning you must ensure the version is under NFTC or have a license).
- Oracle Products with Java Embedded: Many Oracle enterprise products (databases, middleware like WebLogic, etc.) require Java to function. Oracle’s policy is that if you are using Java as part of another Oracle-licensed product, you do not need a separate Java license for that usage. The right to use Java is included in the license for the parent product. For example, if Oracle WebLogic Server (an Oracle product) includes an embedded Java runtime, you are covered under your WebLogic license for that Java usage. This is a relief for customers worried they might need to double-pay. Always verify in the product documentation, but generally, Oracle will not charge you twice for Java when it’s an integral part of another paid Oracle software.
- Older Java Versions (Java 8, 11): These versions are not subject to NFTC; instead, they remain under the older Oracle licenses. Java 8 and 11 can be used for free, but only for limited purposes (such as development and personal use), under the Oracle Technology Network (OTN) license. However, they cannot be used for general production purposes without a subscription. If your organization is still running Java 8 or 11 in production, you likely need a paid license unless you migrate to a newer NFTC-covered version or an alternative Java distribution. The NFTC changes did not retroactively make old versions free for commercial use.
Understanding these exceptions helps avoid unnecessary spending. For example, if you’re planning a cloud migration, knowing that OCI includes Java rights might influence your choice of provider or at least let you factor in the saved Java licensing costs.
Similarly, knowing your Oracle applications’ entitlements can prevent you from accidentally buying licenses you don’t need.
Enterprise Risks and Compliance Considerations
Using Java under the NFTC license can save money, but it shifts the responsibility to the enterprise to remain compliant. Some key risks and considerations include:
- Audit Risk: Oracle has become aggressive in auditing Java usage. Java is ubiquitous in enterprise IT, and Oracle is aware of this – in recent years, a significant portion of Oracle license audits has targeted Java installations. Suppose an organization unknowingly violates NFTC terms (for example, by using Oracle Java in ways that require a license, or by running an older version past its free period). In that case, it may face an audit and a demand for back payment. Enterprises should not assume “Java is free now” and drop their guard; rather, they need to actively manage Java usage to ensure it stays within the free use parameters.
- Tracking Usage and Versions: It is essential to maintain an accurate inventory of where Oracle Java is installed and what versions are in use. This includes shadow IT or developer machines. Without tracking, a company might, for instance, leave an old Java 11 runtime on a server that’s now powering a production system. NFTC doesn’t cover this scenario and could trigger compliance issues. Good software asset management practices around Java are crucial: know your versions, update timelines, and upgrade plans.
- Operational Impact of Upgrades: Relying on NFTC means committing to a frequent upgrade cycle (roughly every two years for LTS releases). Enterprises need to assess whether they can keep up with this pace. Upgrading core Java versions can require significant testing and validation, especially for large applications. Suppose your organization cannot reasonably upgrade Java versions frequently. In that case, you may end up stuck on an unsupported version, which either forces you into a paid subscription or leaves you vulnerable to security vulnerabilities. This risk needs to be weighed against the cost savings. Some organizations may choose to pay for a subscription on a stable Java version rather than incur the risk and effort of constant upgrades; others will invest in automation and containerization to make rapid Java upgrades more feasible.
- Cost of Non-Compliance: The financial penalties of using Oracle Java without a proper license can be steep. If Oracle audits and finds unlicensed use, they will typically require you to purchase subscriptions retroactively. As illustrated above, this could result in sudden bills of hundreds of thousands of dollars for larger companies. Moreover, Oracle’s list prices may not be negotiable under audit circumstances, so you lose leverage. In worst-case scenarios, using Oracle Java outside NFTC can feel “free” until an audit turns it into a large, unplanned expense. The better approach is to proactively ensure compliance (or consider license-free alternatives) rather than risk a surprise bill or a strained vendor relationship.
- Employee Awareness: Since NFTC terms are somewhat nuanced, your IT and development teams must be familiar with them. Many developers historically assumed “Java is free” and might download Oracle JDK out of habit. Training and policies should be in place to ensure that teams are aware of, for example, not including Oracle JDK in deliverables to clients and planning upgrades to new Java versions in line with Oracle’s schedule. A little licensing education can prevent costly mistakes, such as a developer embedding Oracle JRE in an installer without approval.
In summary, NFTC provides a path to use Java without direct licensing costs, but it places the onus on enterprises to manage usage carefully. Compliance is largely about controlling distribution, keeping Java deployments internal, and staying on supported versions.
Companies that treat Java as “free” still need strong governance to avoid falling out of NFTC bounds. Those who succeed can enjoy running Java with minimal costs, while those who are careless may find themselves writing big checks to Oracle.
Recommendations
To effectively take advantage of the Java NFTC license while avoiding compliance issues, enterprise IT leaders should consider the following steps:
- Audit and Inventory Your Java Usage: Identify all installations of Oracle Java (and their versions) across your environment. Determine which instances are covered under NFTC (e.g., Java 17 or later in allowed use cases) and which might not be (older versions, or installations embedded in distributed software). This inventory serves as the foundation for ensuring you’re not unknowingly violating terms.
- Enforce NFTC-Compliant Usage Policies: Establish internal policies that Oracle Java is only to be used for permissible purposes. For example, forbid developers from bundling Oracle JDK in any external software deliverables. If the software you distribute requires Java, have customers obtain it themselves or use alternative JDKs. Communicate these rules to development, DevOps, and procurement teams.
- Plan Regular Java Upgrades: Develop a lifecycle plan to upgrade to each new Java LTS release within the NFTC free period. This may involve containerizing Java applications or utilizing automation to simplify updates. By staying on a supported NFTC version (e.g., moving from Java 17 to 21 to 25, etc.), you avoid falling into a paid support requirement. Make Java version updates a standard part of your IT maintenance calendar.
- Evaluate Support Needs vs. Cost: Consider whether you truly need Oracle’s support or if you can rely on community support and in-house expertise. If your systems are critical and you require guaranteed patches beyond the NFTC window, factor in the cost of a Java SE subscription. On the other hand, if you have the flexibility to upgrade often and can tolerate community-supported Java (or use open-source builds), you can save significantly. Make a conscious choice based on risk and cost, rather than defaulting to a paid license.
- Stay Informed on Licensing Changes: Oracle’s Java licensing policies are subject to change. Keep an eye on official Oracle announcements or consult licensing experts whenever a new Java version is released or Oracle updates terms. For instance, Oracle’s shift to an employee-based subscription model or any change in NFTC duration can impact your strategy. Being proactive will help you avoid nasty surprises, such as suddenly discovering that a new release is no longer free in the same way.
- Engage with Oracle (or Experts) Proactively: If you’re unsure about your Java licensing position, it’s wise to seek clarification before Oracle comes to audit. Oracle and third-party licensing advisors can help review your situation. Sometimes, engaging Oracle for an official stance (without disclosing too much) or using a consultant to perform a mock audit can identify risks early. It’s better to address a gray area (such as a specific use case that may require a license) before it becomes an audit claim.
By following these recommendations, enterprises can use Oracle Java under NFTC with confidence and cost-effectiveness. The goal is to minimize or eliminate Java licensing expenses while maintaining a low compliance risk.
Checklist: Managing Java NFTC in Your Organization
- Identify All Java Installations: Create an up-to-date inventory of every Oracle Java installation (including version and usage context) in your enterprise.
- Verify NFTC Eligibility: For each Java instance, confirm that it falls under NFTC-allowed use (e.g., internal use, latest version, etc.). Mark any that are outside NFTC (e.g., older versions in production or Java bundled in software distributed to clients).
- Remove or License Non-Compliant Uses: For any Java usage that isn’t NFTC-compliant, decide on a mitigation plan. This could involve upgrading the Java version, switching to a different Java distribution, or purchasing an Oracle Java license to meet that specific need.
- Implement Usage Policies: Update internal guidelines to ensure new projects remain within NFTC bounds. For example, require that any product shipped to a customer uses either an open-source Java or that the customer downloads Oracle Java themselves, rather than bundling Oracle JDK.
- Schedule Regular Java Updates: Align your maintenance schedules so that you test and deploy new Java LTS releases promptly (ideally within 12-18 months of their release). This ensures your Java platforms stay in the free support window and receive security updates without interruption.
FAQ
Q1: Is Oracle’s Java NFTC license truly free for commercial enterprise use?
A1: Yes – Oracle’s NFTC license allows free use of Oracle Java in production for all users, including companies, as long as you stick to the terms. This means you can run Java-based applications for your business without incurring Oracle fees, which was not the case under older licenses. However, “free” comes with conditions: you cannot redistribute Java outside your organization or charge for it, and you only get updates for a limited period. Essentially, it’s truly free to use internally and even for customer-facing services, but Oracle isn’t giving a blanket free pass for every scenario forever.
Q2: What are the main conditions to qualify for NFTC (no-fee) use of Java?
A2: The conditions include: (a) Use the Java software for internal purposes (personal, development, or running internal business apps) or for services where you don’t give Java to a third party. (b) Do not embed or bundle Oracle Java in any product or software that you distribute for a fee. (c) Stay on an Oracle JDK version that is currently under the NFTC terms (generally the latest one or two versions). In short, internal use is okay, but giving Java itself to others is not okay. If you stay within those boundaries, you can use Java without a license fee indefinitely (until the point where you need to upgrade due to support ending).
Q3: How long can we use a given Java version under NFTC before we might have to pay?
A3: You can use an Oracle Java version for free under NFTC until Oracle’s free update period for that version ends. For Long-Term Support releases, this is typically until one year after the next LTS release. In practice, that’s around two to three years of free use on an LTS version. For example, Java 17 was free from 2021 until late 2024. After that, if you continue on Java 17, Oracle considers it under a different (non-free) license for updates, meaning that to get critical patches, you would need a paid subscription. The strategy to avoid paying is to upgrade to the next LTS release (e.g., Java 21, Java 25, etc.) as they come out, keeping within an NFTC-covered version. Non-LTS interim releases have a shorter support (about six months), but those are less commonly used in production. Remember, even after the free period, the existing installation doesn’t suddenly stop – you could technically keep using an old version without paying, but you won’t get any new security fixe,s and you’d be out of compliance if you updated it from Oracle. Most enterprises will either upgrade or pay for a subscription at that junction.
Q4: What happens if we violate the NFTC terms or an Oracle audit finds we should have a Java license?
A4: If Oracle determines that your use of Java fell outside the NFTC allowances, they will likely require you to purchase a Java SE subscription (possibly retroactively for the period of misuse). In an audit situation, this can mean a hefty, unexpected bill. Oracle’s audit teams have become increasingly focused on Java, given its widespread adoption. Violations could include running Oracle Java 8 or 11 in production without a license, failing to upgrade an LTS after the free window, or bundling the Oracle JRE in a product. Should an audit occur, Oracle typically issues a report of “unlicensed usage” and proposes that you purchase subscriptions to cover it. There may also be pressure to move onto their current subscription model in the future. The best way to avoid this headache is to self-police compliance. If you discover an issue (such as unauthorized distribution of Java in your product), fix it proactively – either remove Oracle Java from that scenario or reach out to Oracle to license it properly (ideally through negotiation rather than under audit duress). Additionally, maintain documentation of your NFTC-compliant usage (including what you use and how it aligns with NFTC) to demonstrate good faith if questions arise.
Q5: Can we completely avoid Oracle Java licensing costs by using open-source Java alternatives?
A5: While this goes slightly beyond NFTC itself, it’s a common question for enterprises. Yes, there are open-source builds of Java (OpenJDK and various distributions from vendors like AdoptOpenJDK, Red Hat, Amazon, etc.) that can be used as a substitute for Oracle’s JDK without Oracle’s licensing restrictions. Many are binary-compatible and can run your applications with minimal to no changes. Using these can sidestep Oracle’s NFTC terms entirely, as they are typically licensed under the GPL or other open-source licenses. However, even with open-source Java, you still need to manage updates (or purchase support from a vendor like Red Hat or Azul if you require enterprise-level support). The NFTC license was Oracle’s way of keeping users on Oracle’s official JDK by making it free for most uses, but it is not your only option. From a cost perspective, if you find Oracle’s conditions or potential fees unacceptable, migrating to an OpenJDK distribution is a valid strategy. Ensure the distribution is a reputable, TCK-certified Java build to ensure full Java compatibility. Many enterprises mix both approaches: using Oracle JDK under NFTC where it makes sense, and using open-source Java in other cases, to optimize for cost and risk. The right choice depends on how much you trust Oracle’s licensing stability versus the effort to possibly switch vendors.