Java Licensing for Education (Again)


Oracle changed the licensing terms for the “Java SE Universal Subscription”. Should you care if you teach Java? Don't panic. If your institution, perhaps out of an abundance of cluelessness, tells you to uninstall the Oracle JDK, use an OpenJDK version. That's good advice anyway. There are plenty of excellent OpenJDK distributions.

The Twitter Tempest in the Teapot

My editor sent me a link to a tweet:

OMG what did Oracle do now? (I've been happily Java-free for ages, so I can afford to just chuckle.)

— Shriram Krishnamurthi (@ShriramKMurthi) February 23, 2023

Fake news? Click bait? A chat bot run amok? Or evil corporate overlords trampling on long-suffering educational institutions? Read on.


Oracle and a perhaps surprisingly large number of other vendors make Java distributions freely available under “GPL2 with the classpath exception”, an open source license. These are collectively called OpenJDK.

For educational purposes, any of these distributions is a safe and reasonable choice.

Which vendor should you choose? My first choice is, which defaults to the long-term support “Temurin” distribution by Eclipse. I know, the Adoptium and Temurin jargon is annoying, but hopefully your students won't care.

Another perfectly reasonable choice is Zulu. See this nice installation tutorial.

There is one vendor that you may want to avoid. That is Oracle. Their OpenJDK version is the latest release, not the long term support version. Unless you are a Java enthusiast like me, who obsessively follows every change in the language and API, you probably prefer the more stable long-term support versions. Oracle also provides distributions with a no-fee license, a binary code license, or Oracle Tenchnology Network License Agreement. At this point, unless you are a licensing enthusiast, you are probably crying uncle. In that case, my advice is to stick with OpenJDK from one of the other vendors.

The Java SE Universal Subscription Licensing Change

Oracle spends a lot of money developing and supporting Java. All Java users benefit from that. It just might happen that Oracle does not do this solely out of the goodness of its heart. It has many customers who value security updates for older versions and access to technical support, and who are willing to pay for it. Those customers take out a license for Java that entitles them to those services.

One such license is the Oracle Java SE Universal Subscription. That license charges a fee per employee. The predecessor “Java SE Advanced” license charged per CPU. Did Oracle change the license because their customers find that it's easier to track employees than CPUs? Or because that way they earn more money? Or both? I have zero insight in this. And no opinion either. Both Oracle and its customers are sophisticated entities that can figure this out. If customers don't like the deal, they have other choices.

I can't think of any circumstance why Brown University is affected by this license change. If they have not taken out a Java SE Universal Subscription, why would they worry about its terms? And if they did, why would they want to uninstall what they paid to have supported??? Then again, I don't have the details. Or perhaps they are not a sophisticated entity that can figure this stuff out.

If this happens at your institution, relax, install an OpenJDK version, and suggest to your students to do the same.


The existence of OpenJDK with support from multiple vendors is a great strength of the Java ecosystem. Nobody needs to worry about being held hostage by anyone.

I am glad that Oracle is able to derive revenue from Java and that it is willing to expend considerable resources in moving Java forward. Clearly its customers feel that Oracle is providing value to them. After all, they could, thanks to the existence of OpenJDK, make other choices.

I realize that the Java licenses can be confusing. But licenses are everywhere. Check out the license for Racket, a language to which Dr. Krishnamurthi (the tweeter) contributed. The OpenJDK license is well-understood and generally appropriate for educational settings.

The snarky tweeter throws shade at Java, and reasonable people can disagree about the best choice of language for teaching computer science concepts. If Java doesn't work for you, why care how it is licensed?

TLDR; Don't worry about Oracle Java licenses. If Java is the right choice for your teaching goals, just send your students to or

Comments powered by Talkyard.