2

I need a current release of Java to use for development of my app as well as deployment.

I prefer a release that is free-of-cost.

I have no special needs. I will deploy on common hardware with a few cores and 6-12 gigs of memory.

I know there are several vendors, but I don't know how to choose amongst them.

3

tl;dr

logo of the Adoptium project

Use a build of OpenJDK provided by the Adoptium project.

Or, for specific needs, consider any of several other vendors discussed below.

New release cadence and policies

You should know that Oracle and the Java community have changed to a new release cadence. Major production-quality releases will come on schedule every six months. Every three years a release will be designated as a Long-Term Support (LTS) version where the community will strive to back-port vital fixes and security patches, but no new features, for a number of years.

Java 11 is current

As of 2021-06, Java 11 is the current designated LTS version, as is Java 8. The latest and greatest version is Java 16. Later, in 2021-09, Java 17 should arrive, and may be designated as LTS.

All implementations I know of for the AMD/Intel 64-bit market are based on the OpenJDK project. The OpenJDK source code is open-source and available freely without cost via a Mercurial repository originally, and now on GitHub. Several vendors provide releases built on this codebase.

Regarding ARM chips, Java 16 is currently available for Windows/AArch64. Java 17 will be available for macOS/AArch64 (Apple Silicon), with early-access builds available now.

Note that using OpenJDK does not include rights to use the “Java” brand owned by Oracle; for that a vendor must (a) pass rigorous testing for compliance with Java specifications and (b) meet Oracle’s licensing terms.

Be aware that Oracle has changed their terms for use of their Oracle JDK product, no longer allowing use in production free-of-cost. Discussed here.

Also, be aware that Oracle has declared their intent to bring their own branded JDK into feature parity with OpenJDK. Oracle has even gone as far as to donate some formerly commercial parts to OpenJDK, including Flight Recorder and Mission Control.

Read Java Is Still Free

For both an overview and the gory details of the new cadence and terms of Java releases, read the very important document, Java Is Still Free. Written by key members of the Java community to clear up the recent changes.

Several releases for you

To answer your needs, I know of several sources for a release built on OpenJDK 11 available free-of-cost with deployment rights available for download to Mac, Linux, and Windows machines. (Listed in arbitrary order.)

Guide to obtaining Java 11 implementation

Here is a flowchart that might help you in choosing a source for obtaining Java. Note this chart may be incorrect or incomplete. And of course you are responsible for studying and obeying the license and terms for any software you obtain.

Flowchart guiding you in choosing a vendor for a Java 11 implementation

Considerations in choosing a vendor for Java

4
  • We're currently 18 months later, AdoptOpenJDK has been renamed to Adoptium and Microsoft has released their own JDK version. Basil, would it be possible to provide an update to this graph? – Nzall Jun 18 at 12:59
  • @Nzall Ask and ye shall receive. – Basil Bourque Jun 19 at 5:23
  • Thanks Basil. One question though: you're recommending the use of the JDK versions developed by Microsoft and Amazon for use on their platforms. What's the motivation for this? Is this because these JDKs are specifically optimized to work on their platforms? Is this because their platforms only allow these JDKs? Can I run Corretto on non-AWS machines and Adoptium on AWS machines? – Nzall Jun 19 at 9:48
  • @Nzall Both Microsoft Build & Amazon Corretto should work as well as any implementation, and can be run interchangeably on any machine real or virtual if equipped with appropriate CPU and OS (if license allows). Amazon Corretto is the publicly-available release of the codebase the AWS staff deploys internally for their own systems and for any hosted service backed by Java technology. So AWS staff have said they decided to release the same bits to customers for absolute fidelity with what the customer would encounter when using Java as a service. I assume MS does the same but did not confirm. – Basil Bourque Jun 19 at 16:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.