Which Java Versions Do I Have To Pay For? (2025 Update)

java free vs paid

April 2025: As the fun world of IT is always changing another update to this note is needed. The updates are mostly related to the chart below.

How the 2019 “Java Tax” Changed Licensing Forever

Tax Day 2019 was not only a day when Americans had to pay their taxes, but it was also the day that Oracle started charging a Java tax – no longer was Java free for commercial use. So, starting on April 15, 2019 any version of Java released thereafter would require users to pay Oracle for the privilege of using it. This included any updates for existing versions of Java.

Why This Java Version Reference Exists

This article will not be commentary on Oracle’s decision or the caveats of licensing Java, but rather is intended to be a simple reference of Java versions. Since April 2019, I have been a part of many projects to help evaluate the need for an Oracle Java subscription. These early on projects were complicated by the fact that there was no simple chart like the one below. Several years ago it took quite a bit of searching to put together this info and so I created the chart as a reference for myself. As noted it just needs to be updated from time to time.

Free vs Paid Java Releases: Quick Reference Chart

So, to get to the point, a version-based summary of the last “free” version and the first “paid” version of Java SE. One thing of note: Sun, and subsequently Oracle, did offer Java SE Support for those who wanted a paid support option even before the Java subscription days. Those paying for SE Support received additional releases and patches that were not publicly available.

Major Java VersionLast “Free” UpdateFirst “Paid” UpdateNotes
1.41.4.2.30
Updates greater than 30 not publicly available
55 u225 u23Update 23+ not publicly available, through Java SE Support
66 u456 u51Update 51+ not publicly available, through Java SE Support
77 u807 u85Update 85+ not publicly available, through Java SE Support
8 (LTS)8 u2028 u211
99.0.4N/AThe final version of Java 9 was released before 15 April 2019
1010.0.2N/AThe final version of Java 10 was released before 15 April 2019
11 (LTS)11.0.211.0.3
121212.0.1
13-16N/AN/AVersions 13-16 were released after 15 April 2019
17 (LTS)17.0.1217.0.13
18-20N/AN/AAll versions under NFTC License – free
21 (LTS)CurrentTBDNFTC License until Sept 2026, exact version TBD
22-24N/AN/AAll versions under NFTC License – free
25 (LTS)TBDTBDFuture LTS release, Sept 2025 release

Legacy Java 1.4 – 7: Still Alive in 2025

One crazy thing of note is that the version 1.4 – 7 rows in the chart are still relevant. As recently as April 2025 I had conversations with a client that was running 1.4.2 and had absolutely no intention of getting rid of it. We run across clients using those very old versions all the time.

NFTC License and Java 17+: What “Free” Really Means

Oracle announced in September 2021 that Java 17+ would be released under the No-Fee Terms and Conditions (NFTC) license. Under the NFTC license Java is free for commercial use, there was much rejoicing. However, there are strings attached that need to be fully understood before you rejoice or attempt to use Java 17+. I will highlight a few of the strings that need to be reviewed before you get started.

As noted in another House of Brick article (that I strongly suggest you read) the NFTC license quite explicitly states that if you currently have a subscription agreement in place for any version of Java that agreement is in force; the NFTC license cannot be applied. Boiled down, if you already have a Java subscription you cannot use the NFTC license, you will still need to pay for a Java subscription. Also as noted in the article any attempt to cancel the Oracle agreement to take advantage of the NFTC license may prove difficult if not impossible.

The Upgrade Catch-22 for Java 17+

Another issue will be with getting all Java installations in your environment up to version 17+ in order to take advantage of the NFTC license. As noted, the NFTC license is for Java 17+ only and it is not likely that all of the Java applications you use are compatible with Java 17+. It would also be impossible to upgrade everything at once. Thus, you are back to needing a subscription for previous versions that will then also include Java 17+. It is a vicious circle.

Two-Year LTS Cadence and Forced Upgrades

The NFTC terms will also force Java version upgrades. Oracle has announced that new long-term support (LTS) versions of Java will be released every 2 years. You will then have 1 year to upgrade to the new LTS version once released. In my IT career I have run across very few organizations and have delt with very few Java applications that can handle this cadence.

The first iteration of this forced upgrade cadence has already occurred. In September of 2024 the last NFTC version of Java 17 was released. All Java 17 updates starting with 17.0.13 now requires a paid subscription. Java 17 users need to take care not to upgrade themselves into a compliance issue that would then require a very expensive Java subscription. In addition, the next forced upgrade from 21 to 25 is not that far away when looking at timelines in IT terms. The last NFTC version of Java 21 is expected to be released in September 2026.

Key Takeaway: “Free” Isn’t Always Free

The quick summary here is free does not always mean free. Oracle took a lot of heat for starting to charge for Java and personally I see the NFTC license as a publicity stunt. Oracle is stating that Java 17+ is free, then constraining things to the point that it near impossible to actually take advantage of the “free” versions.

Table of Contents

Related Posts