Which Java SDK Should You Use?

Which Java SDK Should You Use?

Are you confused about the Java SDK (aka JDK) options available to you in 2019? This article shows you the options available and provides recommendations for development and production usage.

Martijn Verburg

FYI - AdoptOpenJDK will be building, testing and distributing Corretto as well as its own branded binaries. We’ll be looking to add more OpenJDK derivatives over time and be a one-stop portal. AdoptOpenJDK has broad community participation and sponsorship from the likes of Red Hat, Pivotal, IBM, Azul, Amazon and many more, see https://adoptopenjdk.net for more details

Frédéric Camblor

Hi Matt, that’s a nice detailed blog post.

I disagree with 1 thing which looks unclear to me.
When you write :

Oracle JDK is free for development and testing, but you have to pay for it if you use it in production
Oracle’s OpenJDK is free for any environment

Those statement are correct. BUT I guess it is correct only for Java 9+ versions.

At the time we had Java 8, we didn’t had the Oracle JDK / Oracle OpenJDK split, and I can see that Java 8 updates will not be allowed for business purposes starting from Feb. 2019.
That’s what motivated my gist 5 days ago, as Oracle JDK 8 will be freely available, but it may interfere in your daily usage if you make business with it.

My fear is people having Oracle JDK 8 installed today will make a “blind update” sometime during 2019 and will start using an incompatible version with their business (here, I talk about development usage, not production usage).

Can you elaborate on this please ? Am I wrong somewhere ?

Matt Raible

Since there will be no more public updates to Oracle JDK 8, it will be impossible for a developer to do a “blind update” because the bits won’t be available to them. If they have a support contract with Oracle, they will be able to access the bits. Then they can choose if they’d like to update or not.

Frédéric Camblor

Since there will be no more public updates to Oracle JDK 8

Do you have any source about this ?

As this seems to contradict the release notice statement :

Public updates for Oracle Java SE 8 will remain available for individual, personal use through at least the end of 2020.

My understanding of this release notice is :
- We provide new versions of Oracle JDK 8
- Freely because individual are allowed to use it freely
- But @developers : beware because if you’re using it while doing some business with it, you will need commercial license to be able to use it

I’m maybe wrong but it remains unclear to me.

PS: I don’t want to rant against Oracle, nor spread any FUD. I just want to understand this licensing

Matt Raible

I’d recommend reading Oracle Java SE Releases FAQ for Oracle’s view on the matter.

I don’t think developers need to worry. They should move to an OpenJDK build and not worry about it.

Frédéric Camblor

Thanks Matt, it makes things clearer and shows me I was wrong.

I’ll update my communications around my post accordingly.

Aleksey Shipilёv

It seems all this ignores that Linux distros usually ship with OpenJDK already, so no 3rd party binaries are needed.

A few corrections:

> Red Hat distributes OpenJDK builds via Red Hat Enterprise Linux, a commercial product.

Red Hat builds the OpenJDK RPMs that ship in RHEL-related distributions as well: Fedora and CentOS to name a few. This is why…

> All AWS instances that run Java use Corretto by default.

…you go to EC2 right now and provision the Amazon AMI Linux right now, then there is no default Java, and once you do “yum install java”, it installs java-1.8.0-openjdk-headless-, which is not Corretto. Actually, that is, once again, the RPM built from Red Hat sources. To verify, run with -XX:+UseShenandoahGC -verbose:gc to see it has Shenandoah bundled, which is the marker for Red Hat’s 8u build.

isaac isaac

Useful info, I received today( 2019-10-29 ) an update to jdk 1.8.0_231 from Oracle, so we can still using it for development.