Why the version determines the bill

Java licensing is one of the few areas of the Oracle estate where the precise version number, build origin, and download date of a single binary can decide whether you owe nothing or owe a per employee subscription across your entire workforce. This is unusual. For the database, the metric follows the deployment; for Java, the metric follows the licence text attached to the bits you happened to install, and that text has changed repeatedly. Two engineers running what they both call "Java 17" can be in completely different positions if one pulled the Oracle JDK and the other pulled an OpenJDK build.

The confusion is not accidental. Between 2019 and 2023 Oracle moved the commercial terms three times, and each move reset which versions were free and under what conditions. The result is a patchwork in which Java 8 is partly free and partly paid depending on the patch level, Java 11 is paid for production, Java 17 was free and then ceased to be, and Java 21 is free for now on a clock that is already running. Reading the bill therefore starts with an inventory of versions, not an inventory of usage. This article sits beneath the Oracle Java licensing pillar, which sets out the full picture.

The practical consequence is that version governance is licence governance. An organisation that lets developers freely download "the latest Java" from Oracle's site, without controlling which distribution they take, is manufacturing licence exposure with every install. The cost mechanics of that exposure are worked through in the Java pricing guide.

Licensing by Java version

The cleanest way to hold the rules in mind is version by version. Java 8 was free under the old Binary Code Licence until the public update train ended at 8u202 in January 2019; every Oracle update after that point falls under terms requiring a paid subscription for commercial production. Java 11, released in September 2018, was the first long term support release delivered entirely under the paid model for Oracle builds, so Oracle JDK 11 in production has always required a subscription. Versions 12 through 16 followed the same paid pattern for Oracle builds.

Oracle JDK commercial production status by version
VersionOracle licenceFree in production?Notes
Java 8 (to 8u202)Binary Code LicenceYesFinal free public update Jan 2019
Java 8 (after 8u202)OTN licenceNoSubscription for commercial patches
Java 11 to 16OTN licenceNoPaid for production from release
Java 17 to 20NFTCFree until Sep 2024Then subscription for updates
Java 21 onwardNFTCFree for nowWindow closes one year after Java 25

The table makes the trap visible. The same major version can be free or paid depending only on the patch date, and the newest long term support release is always free at launch but on a timer. A buyer who standardises on a version without tracking where it sits in this lifecycle is committing to a cost that may not appear until a future patch.

The NFTC free window and its expiry

The No Fee Terms and Conditions, introduced with Java 17 in September 2021, is the licence that lets Oracle say Java is free while preserving the path to charge later. Under the NFTC, Oracle JDK is free for all uses, including commercial production, but only until one year after the next long term support release ships. For Java 17 that meant free until one year after Java 21, which closed the window in September 2024. After the window, Oracle stops issuing free updates for that version, and any organisation that wants continued Oracle security patches must buy the subscription.

The NFTC does not make Java free. It makes Java free until the moment you most need to keep patching it, then presents the bill.

This timing is the heart of the design. Organisations adopt the free version, build on it for two to three years, reach the point where staying current on security patches matters most, and discover that continued patching now requires payment. The detailed mechanics of the licence, including the exact wording and the renewal clock, are set out in the No Fee Terms and Conditions guide, and the product the expiry funnels buyers toward is the Java SE Universal Subscription. The same time limited free window also governs Oracle GraalVM licensing.

Which Java versions require a license?

Stated plainly, an Oracle Java licence is required whenever you run an Oracle branded JDK build, in a commercial production setting, outside the free window that applies to that build. That is the whole rule, and every specific case is an application of it. Oracle JDK 8 patched beyond 8u202 needs a licence. Oracle JDK 11 through 16 needs a licence in production. Oracle JDK 17 needs a licence for updates after September 2024. Oracle JDK 21 does not need one yet, but will once its window closes.

What never needs an Oracle licence is an OpenJDK build, regardless of version number. The OpenJDK source is the same code base Oracle itself ships, and builds from distributors such as Eclipse Temurin, Amazon Corretto, and Azul Zulu carry their own free licences with no Oracle subscription requirement. The distinction that matters is therefore not the version, it is the vendor and licence stamped on the binary, a point developed in the OpenJDK versus Oracle JDK comparison.

Determining your own position requires scanning the estate for Oracle branded builds specifically, recording the version and patch level of each, and mapping each against the lifecycle table above. A version inventory that does not capture the distribution source is not an answer to the licensing question, because the same version string appears on free and paid binaries alike.

Long term support and the patch cliff

Oracle designates certain releases as long term support, currently every fourth feature release, with Java 8, 11, 17, and 21 as the LTS line. Non LTS releases such as Java 18, 19, and 20 receive only six months of updates and are not intended for production standardisation. The LTS designation matters for licensing because the free NFTC window is measured against the next LTS release, and because the security patch cliff for any version arrives when its update stream ends.

The cliff is the operational risk that drives licensing decisions. Running an unpatched Java in production is a security exposure most organisations will not accept, so when free updates stop, the realistic choices narrow to buying the Oracle subscription or moving to a free distribution that continues to patch the same version. Many enterprises discover this only when an expiry date passes, which is why version planning and licence planning have to be the same exercise. The same dynamic recurs at every renewal, as covered across the Java advisory service.

The OpenJDK escape from version risk

The structural way out of version driven licence risk is to remove Oracle branded builds from the estate entirely. Because OpenJDK distributions track the same version numbers and ship security patches on their own free schedules, an organisation standardised on Eclipse Temurin or Amazon Corretto faces no Oracle fee for any version and no patch cliff tied to an Oracle window. The version question stops being a licence question and becomes a purely technical one.

Migration is rarely as hard as feared, because the bytecode and APIs are identical across builds of the same version; the work is in inventory, repackaging, and validation rather than code rewrites. The practical sequence is set out in the migrating off Oracle Java guide. For organisations that still want vendor support, the free distributions can be paired with commercial support contracts that cost a fraction of the Oracle employee subscription.

The buyer side view

The practical takeaway is that you cannot answer the Java licensing question from a usage report; you answer it from a version and distribution inventory. Find every Oracle branded build, record its version and patch level, and place each against the lifecycle, because that mapping, not the size of your Java footprint, determines whether you owe Oracle anything. The newest free version is always on a clock, and treating today's free status as permanent is the most common and most expensive planning error.

The durable position is to control which distribution enters the estate at the point of download, standardise on a free OpenJDK build, and reserve the Oracle subscription for the narrow cases where it is genuinely required. Start with the Java licensing pillar for the full framework, the NFTC guide for the expiry mechanics, and the Java advisory service to build a defensible version inventory before any conversation with Oracle.

Oracle Java version licensing: frequently asked questions

Is Java 8 free to use?

Java 8 is free for personal and development use, but Oracle JDK 8 updates after January 2019 require a paid subscription for commercial production. The final free public update was 8u202; any later Oracle patch carries the Universal Subscription requirement for business use.

Is Java 17 free for commercial use?

Oracle JDK 17 was free under the No Fee Terms and Conditions only until one year after the Java 21 release, so the free window closed in September 2024. Continued Oracle security updates now require the paid subscription, while free OpenJDK 17 builds remain available.

Does every Java version need an Oracle license?

No. Only Oracle branded JDK builds carry a possible fee, and only outside the relevant free window. OpenJDK builds of the same version carry no Oracle subscription requirement for any version.