Remember when installing Java meant one download, one version, once choice? Back in the old days, you would head over to java.sun.com or later to Oracle website to download the installer, click through a few prompts, and you were done. Life was simple.
Back then, there was typically one widely-adopted version of Java that would remain stable for years. You didn’t need to think much about version management because there wasn’t much to manage. Over the years, a lot has changed.
The Modern Reality
Fast forward to today, and the Java installation landscape looks drastically different. Sure, Oracle/Java website is still an option, but now you need to navigate licensing considerations. Oracle’s JDK FAQ now includes a long section on licensing, long enough to give you a headache if you are not familiar with the licensing terminology.
To complicate things further, Oracle isn’t your only option anymore. Multiple vendors now offer their own Java distributions: Amazon (Corretto), Red Hat (OpenJDK), Eclipse (Temurin), IBM, Microsoft, and many more. Each has its own strengths, support models, and target audiences.
JDK Vendors as of this writing (courtesy of sdkman.io)
On top of the vendor proliferation, we now have a dizzying array of versions to choose from. Java 8, 11, 17, and 21 are all Long-Term Support (LTS) releases available as of this writing, and there are also numerous non-LTS versions between them. This makes it harder to choose which version to install.
On top of that, different projects require different versions, so we need to not just decide on a version, but also learn living together with multiple versions and switching between them swiftly as needed.
So, how do we navigate this complexity?
What Are Our Options?
... continue reading