[JAVA] Q & A about JDK

Summary of what I investigated in the last two months. I've put out as much source as possible, but I think things will change soon (as it was while I was investigating). We will update it from time to time, but please forgive us if you make any mistakes.

About the situation surrounding Java

What happened? Why are you all making noise?

--[Roadmap changed] for major Java version update provided by Oracle (https://www.oracle.com/technetwork/jp/java/eol-135779-ja.html) --Oracle JDK announced that it will be OTN licensed from Java 11 and fully charged for commercial use

From now on, the JDK will be free of charge, including the functions provided by Oracle for a fee, and will be upgraded once every 6 months. However, some users have needs such as "I want to use Java with the support of the vendor" and "I want to fix the JDK I am using with a specific version" for various reasons. To meet these needs, we will continue to provide paid support from JDK 11 for LTS-designated feature releases after the official OpenJDK binary update, as with JDK 8 and earlier releases. -JDK's new release model and license offer

The software provided under the OTN license cannot be used in production. -Can I use the OTN software in production if I have a legitimate license?

So what's wrong? Do I have to do something too?

If any of the following applies, you need to take measures.

--You are using Oracle JDK in a production environment --I am currently using Java 8 from Oracle and will continue to need security updates. --You already know all the people who updated Java 9 or 10? Reader filter

By when?

Free security update for Java 8 for commercial users until January 2019. Until December 2020 for personal use.

Oracle Java SE Support Roadmap

What should i do?

Choose from the following options.

  1. Continue to use Oracle Java 8. Give up on security updates
  2. Pay Oracle a license fee to prolong the life of Java 8 security updates (Java 8 support will be extended until March 2022)
  3. Pay Oracle a license fee to use Java 11 LTS
  4. Switch to a non-Oracle JDK 8 support is still unfinished or is available for free commercial use 11

If you have money (but you don't have enough human resources), you can move to 3. while receiving paid support from 2. and spending development costs. If you have human resources but no money, you can switch to the JDK in pattern 4.

Common questions

There is something like "Java is still free", but which is correct after all?

** Java is still free. ** However, there are the following conditions.

--Non-commercial user --Although it is a commercial user --Use outside the production environment (development, testing, etc.) --You are using a paid licensed JDK * other than *, such as OracleJDK 11.

It's said that you don't have to worry about anything, or that it's over if you can't keep up with the updates?

The ideal and the reality are different. What is being said there is ideal, not whether your product is okay (even if it collapses).

In fact, in the current situation where the JVM language and related libraries themselves are not able to keep up with updates, there are places where quite expensive (substantially impossible) options such as participation in update support and full replacement of products are required. I think there is.

I would like to switch from Oracle to another JDK if I have to pay, but what do you recommend?

Reference information as it depends on the product status.

――If you can follow the update once every 6 months, OpenJDK provided by Oracle seems to be good because it will be functionally different from Oracle in the future. --The difference in functionality will disappear from version 11 ――If you want free LTS, you have the following options, but please be aware that it may be best effort because it is free. - Amazon Corretto - AdoptOpenJDK -Red Hat (Limited to use on Red Hat Enterprise Linux) -Azul ([Free for use on Azure or Azure Stack](https://azure.microsoft.com/en-us/blog/ microsoft-and-azul-systems-bring-free-java-lts-support-to-azure/), otherwise paid) -IBM (It looks like an in-house product bundle? Unconfirmed)

Even if it is paid, it may be cheaper than Oracle in some cases, so we recommend a trial calculation.

I want to update Java from 8 for the time being. What are the precautions?

Java 9 and 10 are no longer supported, so if you update, it will be 11. Please refer to other articles for the differences for each version. (I made it, but it's not open to the public)

At this time, you can pay for it, so I want to extend the support deadline for Java 8 and save time.

It seems that the billing form of Oracle has changed in the last few months. The official Product Price List (PDF) still lists the sold-out price, Please note that it is currently integrated into a ** Subscription-style billing system **.

Java SE Advanced, Java SE Advanced Desktop, and Java SE Suite products have moved to a more flexible Java SE Subscription service.

When used in a production environment, the charge is set for each processor (annual contract).

There are restrictions on the clouds that can be used, so if you are using GCP etc., please contact Oracle. License of Oracle Software in Cloud Computing Environment (PDF)

Scala Java 11 compatible madder?

Mader https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html

See this issue for the situation. https://github.com/scala/community-builds/issues/796 There are still libraries that haven't been compiled. Like Spark.


That's all the information that can be sent outside the company!

Recommended Posts

Q & A about JDK
A story about the JDK in the Java 11 era
A note about Java GC
A note about the scope
A private note about AtomicReference
About adding a like function
A note about RocksDB's Column Families
A murmur about the utility class
About =
A little summary about typesafe config
[Swift] A note about function and closure
[Creating] A memorandum about coding in Java
[Java] Stepping on a JDK compiler bug
About Records preview added in Java JDK 14
JDK 8 is a heavy problem on MacOS
Rails: A little summary about data types
I have a question about Android studio.