[Java] Platforms to choose from for Java development starting now (2020)

I've heard rumors about Java, but I don't know which one to use when I try to use it. I hope the support period is long and it doesn't cost much. This is a summary of information for such a person (myself: smiley :: point_left :).

JDK list

I tried to summarize Java that can be used as an execution environment for products delivered to customers by contract developers.

name Java version Supported OS Support deadline Things necessary license
Oracle JRE(OracleJavaSE) 8 Windows, Linux, macOS, Solaris March 2025 Buy a subscription OTN Agreement for Oracle Java SE
Oracle Java SE 11 Windows, Linux, macOS September 2026 Buy a subscription OTN Agreement for Oracle Java SE
Red Hat OpenJDK (For windows) 11 Windows October 2024 Buy a subscription GPLv2 with CPE
AdoptOpenJDK 8 Windows,Linux,macOS,AIX,Solaris September2023 (None) GPLv2 with CPE
AdoptOpenJDK 11 Windows,Linux,macOS,AIX September2022 (None) GPLv2 with CPE
Amazon Corretto 8 Windows,Linux,macOS June2023 (None) GPLv2 with CPE
Amazon Corretto 11 Windows,Linux,macOS August2024 (None) GPLv2 with CPE
Azul Zulu Enterprise 8 Windows, Linux, macOS March 2026 Buy a subscription GPLv2 with CPE
Azul Zulu Enterprise 11 Windows, Linux, macOS September 2027 Buy a subscription GPLv2 with CPE
Azul Zulu Community 11 Windows,Linux,macOS,Solaris September2027 (None) GPLv2 with CPE
SapMachine 11 Windows,Linux,macOS September2022 (None) GPLv2 with CPE

Oracle OpenJDK 13 (support deadline March 2020) and Oracle OpenJDK 14 (support deadline September 2020) have been omitted.

Packages that come with your Linux distribution

An OpenJDK package included with the Linux distribution. Most of the time, you will use this.

Distribution and version Java version Support deadline
RHEL 6, 7, 8 8 June 2023
RHEL 7, 8 11 October 2024
CentOS 6, 7, 8 8 Is it similar to RHEL?
CentOS 7, 8 11 Is it similar to RHEL?

JDK that can be used in the cloud environment

Cloud vendor service OS Java version Support deadline
Amazon Web Services EC2 Amazon Linux 1 8 June 2020(?)
Amazon Web Services EC2 Amazon Linux 2 8 April 2023(?)
Amazon Web Services EC2 Amazon Linux 2 11 April 2023(?)
Microsoft Azure VM Windows, Linux 7 July 2023
Microsoft Azure VM Windows, Linux 8 March 2025
Microsoft Azure VM Windows, Linux 11 September 2026

Which one should I use after all?

What version?

If you want to move it now, you have 11 choices.

If you want to move it after September 2021, you should prepare for the next LTS, 17.

What about the JDK?

It seems that it will be a choice according to the conditions.

Oracle? Other than Oracle?

First, choose whether to use Oracle or non-Oracle. Rich people who can buy Ferrari will choose Oracle (Higami).

For non-Oracle

For the cloud, it's probably best to use Java, which comes with your environment.

For on-premise Linux, you can match the OS and support, and it seems easy to use the included package.

If you want paid support for on-premise Windows, Red Hat or Zulu is probably the way to go.

Link Collection

by the way

What is the correct answer for deploying Java applications today?

  1. Distribute old-fashioned jars
  2. Create and distribute docker image
  3. Nativeize and distribute with GraalVM

From the user's point of view, 3. seems to be the least troublesome, but I wonder if anyone is actually doing it.

Recommended Posts

[Java] Platforms to choose from for Java development starting now (2020)
For Java engineers starting Kotlin from now on
Java development for beginners to start from 1-Vol.1-eclipse setup
Java, for statement / while statement starting from beginner
Memo for migration from java to kotlin
Minecraft BE server development from PHP to Java
Changes from Java 8 to Java 11
Sum from Java_1 to 100
From Java to Ruby !!
Features that are likely to enter Java 10 for now
Things to watch out for in future Java development
Migration from Cobol to JAVA
Java starting from beginner, override
New features from Java7 to Java8
Connect from Java to PostgreSQL
Java, instance starting from beginner
Java starting from beginner, inheritance
Java life starting from scratch
Java8 to start now ~ Optional ~
From Ineffective Java to Effective Java
Starting with VSCode's Remote-Containers Extension v0.131.0, there is only one Java Configuration to choose from.
Java, abstract classes starting from beginners
If you want to change the Java development environment from Eclipse
Notes on building Kotlin development environment and migrating from Java to Kotlin
Build Java development environment (for Mac)
Java to be involved from today
From Java to VB.NET-Writing Contrast Memo-
Java overload constructor starting from beginner
Java, interface to start from beginner
The road from JavaScript to Java
Java 8 ~ Stream API ~ to start now
I tried to summarize Java 8 now
[Java] Conversion from array to List
Things to note for newcomers to write readable code during Java development
Kotlin vs. Java: Which Programming Language to Choose for Your Android App
Java starting from beginner, variables and types
[Java Spring MVC] Controller for development confirmation
Language summary to learn from now on
About the procedure for java to work
Java starting from beginner, nested / break / continue
Java, if statement / switch statement starting from beginner
Sample code collection for Azure Java development
Java starting from beginners, logical operators / conditional operators
Getting Started with Java Starting from 0 Part 1
AWS Lambda with Java starting now Part 1
Connect from Java to MySQL using Eclipse
Java 8 to start now ~ Date time API ~
From installing Eclipse to executing Java (PHP)
Post to Slack from Play Framework 2.8 (Java)
Java: How to send values from Servlet to Servlet
Introduction to monitoring from Java Touching Prometheus
Precautions when migrating from VB6.0 to JAVA
Type conversion from java BigDecimal type to String type
[Java] How to test for null with JUnit
[Java] From two Lists to one array list
Upsert from Java SDK to Azure Cosmos DB
How to find OSS trends for web development
Java Development Basics ~ How to Write Programs * Exercise 1 ~
Connect to Aurora (MySQL) from a Java application
To become a VB.net programmer from a Java shop
Migrate from Java to Server Side Kotlin + Spring-boot