Java SE Subscription

On June 21, 2018, Oracle announced Java SE Subscription, a paid subscription model. It includes licensing and technical support for desktop, server, and cloud use. (Link: Oracle Java SE Subscription)

For desktop use, the price is $2.50 per user per month. In return you get licensing, upgrades, and support.


JDK Licensing?

First, recall that the JDK (Java Development Kit) is required to compile Java code. The JVM runs Java programs, but the JDK is needed to produce bytecode.

Two JDK distributions appear in licensing discussions: Oracle JDK, which is commercial, and OpenJDK, which is open source. Oracle JDK is built from OpenJDK source. Most features are identical, but some differences remain, such as font libraries. Those differences have shrunk with newer versions. Link: Stack Overflow - Differences between Oracle JDK and OpenJDK

In Oracle JDK 8, font files appear under jre/lib/fonts.

OpenJDK specifications are defined through the Java Community Process (JCP). (Link: Wikipedia - Java Community Process)

In other words, OpenJDK implements Java Specification Requests (JSR) defined by JCP. Vendors like Oracle, Red Hat, and Azul build their own JVM distributions from that source. They must pass TCK (Technology Compatibility Kit) certification.


So What Should You Do?

This is the real question. I used Java at school and at home, and wondered whether I should switch to OpenJDK. The download page said Java was free. (Link: Oracle - What is Java?)


whatisjava

Free, right?


It turns out Oracle JDK was never fully free. It is free for personal use, but requires a paid license for commercial use. This is common in other software as well. Java the language is free, but the JDK has licensing constraints.

That said, you probably do not need to panic. But support windows matter. For example, Oracle JDK 1.8 patches for personal use end in December 2020. (Link: Oracle - Java Support Roadmap)


whatisjava

Personal, non-commercial development should be fine. But if you develop professionally, there is little reason to stick to Oracle JDK. OpenJDK is already at 11 and beyond (and by 2019, even 13). It is worth trying.