Oracle's changes to Java SE licensing have turned a once "free" technology into a potential cost and compliance risk for enterprises. If you bundle Java in hardware or software products, you need to understand which versions now require paid licences, when free public updates ended, and how Oracle's "free" terms actually work.
The Oracle Java licensing overview explains why embedded deals differ from standard enterprise licensing.
Java Licensing Shift: From Free to Fee
Oracle Java was historically free under the Binary Code Licence (BCL). This changed in 2019 when Oracle ended free public updates for Java 8 and later versions in commercial settings. The BCL was replaced with the Oracle Technology Network (OTN) licence. Java became free only for personal use or development and testing.
Java SE 8
Free updates stopped April 2019 for commercial use. Subscription required for patches.
Java SE 11
Never free for production under OTN. Subscription required from day one.
Java SE 17
NFTC free period closed late 2024 when Java 21 arrived. Pay or upgrade.
Java SE 21
Current LTS. Free under NFTC until approximately one year after Java 25 release (2025–26).
Real-World Scenario
A bank running critical applications on Java SE 8 in 2020 was caught off guard. Free updates had ceased and the next security patch required purchasing Oracle's subscription. Many companies continued using outdated Java 8, risking security vulnerabilities. Others scrambled to budget for an unexpected expense.
Embedded Java in OEM Products: Hidden Compliance Risks
If you are a hardware or software vendor embedding Java SE into your products, you cannot assume Java is "free." Oracle requires a special OEM agreement for vendors to redistribute Java. Without one, bundling Oracle JDK or JRE exposes you and your customers to non-compliance.
Real-World Scenario
VMware's vSAN product historically embedded Oracle Java under a commercial Embedded Use licence. When that agreement expired in late 2022, VMware ceased shipping Oracle Java. Customers had to update Java on their own, or VMware moved to an open JDK. Even large vendors need OEM deals.
Vendors embedding Java should either pay Oracle for OEM rights or switch to a no-cost OpenJDK distribution. Simply doing nothing leaves you or your users with a compliance ticking time bomb. Fundamental concepts are covered in Oracle Java licensing explained.
- Distribute Oracle Java with your product? You need an OEM agreement with Oracle and expect to pay. Standard downloads are licensed only for end-user use, not redistribution.
- Rely on customers to install Java? Make it explicit in documentation. After 2019, customers may need a paid subscription. This creates friction and blame if they face an audit.
- Better path: Bundle an open-source Java runtime such as Eclipse Temurin or Azul Zulu. Many providers (SAP, IBM) ship their own builds to sidestep Oracle licensing entirely.
Oracle's Java Subscription Model: Know Your Costs
In 2023, Oracle introduced a Universal Subscription with an employee-based metric. Companies must licence Java for every employee, regardless of how many actually use it. This can dramatically increase costs.
Under the old model, a company paid approximately $25 per server per month for machines running Java. Under the new model, a firm with 10,000 employees pays for all 10,000, even if only 500 use Java. At $15 per employee per month (list), a 25,000-employee company could owe over $2 million per year.
- Per-Employee Licensing: Oracle counts your entire workforce including full-time, part-time, and contractors. This "whole enterprise" metric over-licences your usage and drives up costs.
- Legacy vs. New Contracts: Pre-2023 subscriptions (user or processor-based) may renew on old metrics briefly. New purchases are all employee-based. Expect pressure to transition.
- OEM Specific: Vendors may negotiate custom metrics (per device, per instance). Oracle tailors pricing to volume. Always model OEM fees vs. customer self-licensing.
Pricing history and trends: Oracle Java licensing models: evolution and pricing.
Third-Party Java Support: Azul, IBM, Red Hat & Others
Oracle is not the only source. Several vendors provide OpenJDK-based builds and support that are Java SE-compliant and enterprise-ready. Azul Systems (Zulu), IBM (Semeru Runtime), Red Hat (OpenJDK builds), Amazon Corretto, and others let you run Java without Oracle's constraints, often at much lower cost.
These distributions share the same core codebase as Oracle JDK. Switching is usually straightforward. The main advantage is removing Oracle audit exposure entirely while still getting security patches, bug fixes, and long-term support.
Bundling scenarios: Oracle products bundling Java SE licences.
OTN vs. NFTC: Oracle's "Free" Java Terms Explained
- OTN Licence (Java 8 updates post-211, Java 11, etc.): Free for development, testing, prototyping, or personal use only. Production requires a paid licence. Prohibits redistribution to third parties. Not for OEM use.
- NFTC Licence (Java 17, 21, future LTS): Free in production for all users, but only for a limited time. The free period ends one year after the next LTS release. After that, it reverts to OTN-like status. Allows redistribution only "not for a fee." This likely disqualifies commercial OEM use.
Real-World Scenario
A device manufacturer considered using NFTC to embed Java 17. Legal flagged a problem: selling a device with Java means customers pay for the device (which includes Java), potentially violating NFTC's "not for a fee" clause. They wisely opted for OpenJDK instead.
Budget considerations: Oracle Java licensing costs: 20 things every CFO needs to know.
Decision Matrix: Oracle vs Third-Party vs Open Source
| Factor | Oracle Java SE Subscription | Third-Party Support (Azul, Red Hat, IBM) | Open Source OpenJDK (DIY) |
|---|---|---|---|
| Cost Model | High. Per-employee enterprise-wide. | Moderate. Per server, instance, or cores. | Low or none. Free to use. |
| Licence Coverage | Full Oracle JDK rights. OEM requires separate terms. | OpenJDK build plus support. Often includes redistribution rights. | GPL licence. No fees to run or embed. |
| Support & Updates | Regular patches, bug fixes, phone and web support. LTS through 2030+. | Patches closely tracking Oracle, sometimes longer timelines. SLA support. | Community-driven. LTS updates 6–12 months. Self-patch beyond that. |
| Compliance Risk | Minimal if correctly licensed. Audit exposure if undercounting employees. | Low. Not using Oracle binaries. Ensure no Oracle JDK remnants. | Low for Oracle. Must remove all Oracle JDK installations. |
| Pros | Official Oracle support. Oracle-only features. Simplified compliance. | Significant savings. Flexible support. No Oracle audit worries. Legacy Java support. | Zero cost. Full independence. Open-source transparency. |
| Cons | Expensive per-employee model. Vendor lock-in. Future price hikes. | Another vendor relationship. Migration effort. Some cost. | No direct support. Must stay on top of upgrades. Shorter support window. |
Many enterprises adopt a hybrid approach. They pay Oracle for certain environments (or where Oracle software bundling forces them) but use OpenJDK elsewhere to minimise costs. Migrating from Oracle JDK to OpenJDK is usually straightforward since they share the same codebase.
Recommendations
Audit your Java usage
Conduct a thorough inventory of all Java installations across servers, desktops, and instances embedded in third-party software or devices. Map versions and distributions (Oracle vs OpenJDK).
Identify licence requirements
For each instance, determine if it falls under Oracle's licensing. Is it Oracle JDK in production (needs licence)? Development only (free under OTN)? OpenJDK (no Oracle fees)?
Engage with vendors
Ask OEM vendors directly: "Does your product licence Java for us, or are we responsible?" Push vendors to switch to OpenJDK in their products to avoid passing Oracle fees to you.
Evaluate alternatives early
Do not wait for an Oracle audit. Assess OpenJDK or third-party JDK feasibility now. Pilot in a test environment. This also gives you negotiating leverage with Oracle.
Cost-benefit analysis
Compare Oracle, third-party, and in-house costs over 3 to 5 years. Factor in operational costs like upgrade frequency on the NFTC path or managing another vendor relationship.
Stay updated on licensing policy
Oracle's rules change frequently (2019, 2021, 2023). Assign someone to monitor announcements. Changes in terms can open or close opportunities.
Consider contractual protections
If signing Oracle's subscription, negotiate: cap price increases on renewal, clarify "employee" definition to avoid overcounting. For OEM deals, ensure scope is well-defined.
Educate and enforce internally
Ensure IT staff know that downloading Oracle JDK for production without approval is prohibited. Maintain an internal repository of approved OpenJDK builds.
Leverage temporary free periods wisely
If using NFTC (e.g. Java 21 now), mark when the free period ends and start preparing an upgrade or contract decision well in advance.
Consult experts if needed
Java licensing can be as complex as any enterprise contract. If exposure is multi-million-dollar, seek advice from licensing specialists with benchmarking data and negotiation experience.
Checklist: 5 Actions to Take
Inventory Java Installations
List all applications and products using Java. Include version numbers, distribution (Oracle or OpenJDK), and whether vendor-supplied or internally developed.
Assess Licence Needs
Mark which installations require a paid licence under Oracle's rules. Do not forget embedded uses in OEM software and appliances.
Decide Strategy per Use-Case
For each area: subscribe with Oracle, switch to third-party JDK and support, or upgrade and replace with OpenJDK? Prioritise high-risk or high-cost areas first.
Engage Stakeholders
Secure buy-in from technical teams and management. If migrating, coordinate with application owners for compatibility testing. If purchasing, get budget approval.
Implement and Monitor
Execute the plan. Set up ongoing monitoring: ensure new projects follow approved Java policy, track end-of-free-update dates, and review usage at least annually.
FAQ
Any Oracle Java SE 8 update past April 2019 requires a subscription for commercial use. Java 11 and 16 always required one under OTN terms. Java 17 and 21 are free under NFTC but only until one year after the next LTS release. If you are on Oracle JDK in production and it is not the latest LTS within its free period, you likely need to pay.
It depends on the vendor's agreement with Oracle. Some vendors (Oracle itself, SAP, IBM) have OEM deals covering customer use. Many vendors do not. They expect you to install Java yourself. Always ask: "Does your product licence Java for me?" If they cannot confirm it is covered, assume you need to licence it or use an alternative runtime.
Compliance liability and security exposure. Oracle audits have increased in frequency. Unlicensed Oracle JDK discoveries can lead to retroactive subscription bills running into six or seven figures. Running outdated Java without patches also creates cybersecurity risk from known vulnerabilities.
Yes, in most cases. Oracle's JDK is built on OpenJDK. The codebases are extremely close. Switching to Eclipse Temurin, Azul Zulu, IBM Semeru, or Amazon Corretto typically requires no code changes. Minor considerations: Oracle's old JRE installers and Java Web Start are not always present in OpenJDK distributions, but workarounds exist.
Inventory where Oracle Java is used. Remove or replace unauthorised Oracle JDK installations with OpenJDK. Review contracts for Java audit rights. Run scans yourself beforehand. Being properly licensed or migrated greatly reduces stress. If Oracle finds everything on OpenJDK, the audit is uneventful. Be proactive: fix compliance gaps before an audit.
Read more about our Oracle Java Licensing Services.