Help us understand the problem. What is going on with this article?

Javaのサポートについてのまとめ2018

Javaのサポートについてのまとめ

Javaのライセンスやサポート状況について混乱が発生しているように思います。Javaのサポートを各団体がどのように行なっているかをまとめてみます。
知っておいてほしいのは、Javaの実装やサポートはOracle JDKかOpenJDKの二択、ではなくAdoptOpenJDKやAzul Zulu、Corretteなど多くの選択肢があるということです。
ここでサポートはバグやセキュリティに対応したパッチがリリースされることを表しています。

Javaのリリースサイクル

これまで、Javaは3年ごとを目標に結局5年くらいかけて次のバージョンを出したりしていましたが、それでJavaはなかなかバージョンアップしなくて古いと言われていました。それが2017年9月、今後は6ヶ月ごとにフィーチャーリリースを行うというリリースモデルに変更されました。Java9が2017年9月に出た6ヶ月後の2018年3月、実際に計画通りJava10がリリースされています。
この6ヶ月サイクルの中でリリースされるJava10やJava11での変更は、これまででいうとJava 8 update 20やJava 8 update 40のような機能リリースに相当するとのことです。
(ここのQ1)
https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence
(日本語訳)
https://orablogs-jp.blogspot.jp/2018/05/update-and-faq-on-java-se-release.html

問題になるのは、そのサポート期間です。この次の項から、それぞれの団体のサポートポリシーをまとめます。

OpenJDK

Javaの開発コミュニティで、OracleがメインスポンサーとしてJavaの開発を行なっています。実質的にすべてのJavaの実装の中心となります。OpenJ9など独自のJVMやAndroidのようなJava言語互換のプラットフォームはありますが、Java標準APIやコンパイラはOpenJDKのものを使っています。
http://openjdk.java.net/projects/jdk/

サポートポリシーとしては、半年ごとのリリースで次のバージョンが出るまでというのが公式発表です。確かに、これまでもJava 8 update20などは次のupdate40が出ればサポートは終了していたわけなので、これはこれで自然ですね。
問題はLTSです。Oracleの公式の発表ではOpenJDKにLTSは設定されていません。JavaのチーフアーキテクトであるMark Reinhold氏がいくつかのイベントでOpenJDKでも3年ごとのLTSを行うと話していますが、いまのところ公式発表にはいたっていません。また、Mark Reinhold氏の言う通りのLTSが行われるとしても、LTS間のオーバーラップはないので厳しいものがあります。
https://youtu.be/x7pkWlost64?t=5m39s

後述するようにIBMはOpenJDKでの4年間のサポートの意向を示していて、動向については注意する必要がありそうです。

2018/10/4 追記
Red Hatは顧客向けJDK8サポートを2023年まで提供することを表明しています。また、その際に"upstream first"つまり、OpenJDK本体のソースを先に更新するとも述べられていて、2023年までOpenJDK上でJDK8のソースが更新されることになります。
https://developers.redhat.com/blog/2018/09/24/the-future-of-java-and-openjdk-updates-without-oracle-support/

Oracle JDK

Oracle様のJDKです。
Java11からは、実運用に使えるのはOracleと契約した顧客だけになります。3年ごとにLTSとして5年間のサポートが行われます。追加のサポートとしてさらに3年、無期限サポートもあります。
http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html

当初、バイナリを入手できるのは顧客だけとのことでしたが、2018/6/21に更新されたサポートロードマップでは、Java SE 11から開発やデモ用途では引き続きOracle JDKが使えるということになりました。
上記 日本語訳は3月時点のものなので、英語版を確認してください。
Oracle Java SE Support Roadmap

Java8については、2019年1月までのサポート継続を表明しています。デスクトップ利用に関しては2020年まで。顧客向けには2022年3月と3年の追加サポートを予定しています。

サポート金額は仮想マシン100台で1億2000万円という噂も
https://twitter.com/shun_tak/status/988256213379956738

ここに価格表がありました。
https://www.oracle.com/jp/corporate/pricing/price/index.html
プロセッサあたり60万円で、そこにプロセッサコアファクタとして0.5という料率が設定されています。ただしAzureとAWSではこの料率は適用されません。また、ハイパースレッドの場合、2CPUを1CPUとして計算するようです。
ということで、自前のサーバーやOracle Cloudでハイパースレッド有効の4CPU仮想マシン100台なら2CPUx.5x100台x60万=6000万だけどAWSやAzureなら1億2000万ということになりそう。

しかしながら、2018/6/21に新しいJava SE Subscriptionが公開されています。
Oracle Introduces New Java SE Subscription Offering for Broader Enterprise Java Support
デスクトップの場合は$2.5/人・月かそれ以下、サーバーの場合は$25/プロセッサ・月かそれ以下、そしてボリュームディスカウントがある、というようなことが書かれています。
Java SE Subscription FAQ

IBM

IBMのJava SDKは2022年4月までJava8をサポートするようですね。
https://developer.ibm.com/javasdk/support/lifecycle/
JVMがJ9だと思うので注意が必要ですけど。

IBMは自社顧客向けのJava8サポートを少なくとも2025年まで行うとしています。
https://developer.ibm.com/javasdk/2018/04/26/java-standard-edition-ibm-support-statement/

また、この文章の中で、OpenJDKでも4年のLTSサポートを行いたいということが書いてあります。それとAdoptOpenJDKというプロジェクトを行なってることも書いていますね。これについては次の項で。

AdoptOpenJDK

AdoptOpenJDKは、OpenJDKのビルドを提供するコミュニティでIBMなどがスポンサーしています。
https://adoptopenjdk.net/index.html
コミュニティのOpenJDKビルドファームが稼働

LTSについて4年間のサポートを表明しています。また、Java8についても2022年9月までのサポートが予定されています。
https://adoptopenjdk.net/support.html

ということで、公式発表ベースで考えるなら今後はAdoptOpenJDKのビルドを使うのが本命になりそう。
しかし、大変そう。
https://github.com/AdoptOpenJDK/openjdk-build/issues

Zulu/Zulu Enterprise

ZuluはAzul Systemsが提供しているOpenJDKビルドです。Azul Systemsは OpenJDKのサポートを行う企業で元OracleのSimon Ritter氏が属している会社です。
CustomerにMicrosoftもあるので、たぶんMicrosoft Azureもzuluを使っているんではなかろうか。

ここでOpenJDKの独自ビルドを配布しています。
https://www.azul.com/products/zulu-and-zulu-enterprise/
JDK6もu107とかを提供しています。今後はどんな感じになるんだろう?

Zuluは無償で使えますが、Zulu Enterpriseは商用サポートを提供していて、無制限の一番高いサポートでも$310,500です。Oracleのサポートに比べるとわかりやすい!
LTSに関しては8年のサポートを行うようです。また3年ごとのLTSだけではなく毎年9月のリリースについてMTS(Middle Term Support)を提供していて次のLTSが出てから2年のサポートを行なっていたり、それ以外の各リリースについても1年間の追加サポートを提供していたりします。
https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-enterprise-java-support-options/

Red Hat

Red HatはRed Hat Enterprise Linux上で動かすJDKについてサポートを提供していて、OpenJDK8の場合は2023年6月までサポートを行なっています。Java 11についての記述はありませんが、おそらくそれなりに長い期間のサポートを提供すると思います。
https://access.redhat.com/articles/1299013
https://access.redhat.com/articles/3409141

2018/10/4追記 2023年までJDK8をサポートするようです
https://access.redhat.com/ja/articles/1457743

Microsoft(Azure)

Azul Systemsと共にAzure上でのLTSの提供を表明しています。
https://azure.microsoft.com/ja-jp/blog/microsoft-and-azul-systems-bring-free-java-lts-support-to-azure/

Amazon

Amazon Linux 2上のOpenJDK 8とOpenJDK 11について、少なくとも2023年6月30日までのサポートを表明しています。
Re-affirming Long-Term Support for Java in Amazon Linux | AWS Compute Blog

また、CorrettoとしてAmazon Linux 2以外の環境でも動かせるJDKのリリースを発表しました。
Introducing Amazon Corretto, a No-Cost Distribution of OpenJDK with Long-Term Support | AWS Open Source Blog

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした