Javaは今も無償です
このドキュメントはJava Is Still Freeの翻訳です。 |
Oracle JDKの配布とサポートが少し前に変更され、Oracle JDKやオラクルのOpenJDKビルド、他プロバイダのOpenJDKビルドを利用する際の権利に関して不透明なところが少なからずあります。無償アップデートや (新規と既存の) 有償サポートモデルがさまざまなベンダから提供される予定もあり、検討の余地があります。このドキュメントには要約バージョン と全詳細がある詳細バージョンのセクションがあります。
コメントしたい方 こちらからお願いします。Java Is Still Free Mirror post on Medium. |
今もOracle JDKやオラクルのOpenJDKビルド、他プロバイダのOpenJDKビルドを無償で取得できます (このニュアンスについては以下のコラムや以降のセクションを読んでください)。これは複数のプロバイダがJava SE仕様の実装を提供するからこそ可能となっているのです。
Java SE / OpenJDK / オラクルのOpenJDKビルド / Oracle JDK OpenJDKコミュニティはJava SE仕様の (GPLv2+CEでの) オープンソースの参照実装 (RI) を作成し維持します。この仕様はJavaコミュニティプロセス (JCP) により管理され、各フィーチャーリリースの包括的なJava Specification Request (JSR) で定義されます。 さまざまなプロバイダによる複数のJava SEの実装があります (たとえばAzul、Eclipse、IBM、レッドハット、オラクル、SAPなど)。もっとも普及しているものがOracle JDKです。 Oracle JDK 8は"公式アップデートの終了"過程にあります。つまり、2019年1月以降商用利用に対する無償のアップデートは打ち切られます。一方で、オラクルはJava SE 9以降オラクルのOpenJDKビルドを提供します。これは商用利用も無償です。またAdoptOpenJDKやAzul、IBM、レッドハット、Linuxディストリビュータのような他のプロバイダから無償のOpenJDKが提供されます。 プロバイダはその実装が関連する互換性テストキット (TCK) のテストをすべてパスすることでJava SE仕様の必要要件をすべて満たしていると証明します。 |
今後JDK取得にはさまざまな選択肢があることになります。ここではJava SE 8 (以前のバージョンと同様に公式アップデート終了プロセスが進行中) と新しいリリースサイクルで初めての長期間サポート (LTS) リリースとなるJava SE 11を取り上げます。
さまざまな理由でJava SE 8を使い続けたい人もいます。
無償かつ (使用において) フリーのJava SE 8がほしい。何を選べばいい? 2019年1月以降にJava SE 8をアップデートが必要なら、OpenJDKプロバイダから配布されるOpenJDKバイナリを使ってください。OpenJDKプロバイダは、たとえばLinuxディストリビュータやAdoptOpenJDK、Azul、 IBM、レッドハットなどです。 |
Java SE 11を利用する選択肢はいくつかあります。以下を注意して読んでください。特にOracle JDKはJava SE 11以降変わります。
注記: オラクルはオラクルのOpenJDKビルドに対して3ヶ月ごとのアップデートを2回提供します。そのバージョンをリリースして6ヶ月経つと、ユーザに次のバージョンへの移行を促す予定です (これにはLTSバージョンも含まれます)。
無償かつ (使用において) フリーのJava SE 11以降のものがほしい。何を選べばいい?
|
オラクルは有償サポートをOracle JDK 8に対しては少なくとも2025年まで、Oracle JDK 11は少なくとも2026年までフルに提供することを計画しています (詳細) 。Java SE / OpenJDK 8と11のバイナリに対してはAzulやIBM、レッドハットなどから幅広い有償サポートの選択肢が提供されています。
このページは要約バージョンと詳細バージョンを分けるため意図的に白紙にしています。
このセクションでは、意図的に詳細を記述しています。はっきりと説明する必要があるからです。すべて読むには相応の時間がかかることをご承知おきください。きっと、役に立つはずです。
以前の投稿や資料の再利用を許可してくれたSimon Ritter氏、Stephen Colebourne氏、Hendrik Ebbers氏、Donald Smith氏、Jonas Konrad氏と他多くの人たちに感謝します。別表 I - 署名者リスト、感謝、リファレンスには再利用の承認をいただいた資料のすべてとこのドキュメントに署名してくれた人々を掲載しています。
このリンクから修正の提案やコメントができます。ぜひフィードバックをお寄せください。
このドキュメントは新情報が判明したり事実に基づくデータにより検証された訂正箇所があれば今後も更新されます。ここで更新をチェックするか@Java_ChampionsのTwitterアカウントをフォローしてください。
Version | Date | Comments |
1.0.0 | 2018年9月17日 10:00 UTC | 初版 |
TBD | TBD | TBD |
このシートでこのドキュメントの普及活動を記録しています。このドキュメントをシェアしたら更新してください!
Java Desktop / Java Web Start / JavaFX
OpenJDKのバリエーション同士、そしてOracle JDKとの比較
Oracle JDK / OpenJDK 8、 11に対するオラクルの公式アップデート終了
Oracle JDKの配布とサポートが最近変更されたことにより、Javaの将来やそのソフトウェアライフサイクル、ベンダ提供のサポートに関しては、少なからず不透明になってきました。このドキュメントでは、オラクルが行った変更やJava SEユーザが利用できる選択肢をまとめます。
無償(フリー)とは何を意味するのか?
このドキュメントの原題はJava is Still Freeなのですが、この"フリー"という単語には、ソフトウェアにおいて2つの違った意味があります。
要約バージョンで説明したように、Java SEバイナリをオラクルや他の Java SE / OpenJDKプロバイダから"ビールに対して使われるフリー"なものとして取得できます。 プロプライエタリかつ/もしくは使用制限があるJava SEの実装が世の中にはありますが (AzulのZingやOracleのJDKなど) 、大部分のユーザにはGPLv2+CEライセンスである"スピーチに対して使われるフリー"なOpenJDKバイナリを使うという選択肢がつねにあります。 |
こうした変更が短期間に起こり不透明感が最悪の状況となったため、業界のニュースを注意深く追いかけられない一般的な開発者は混乱しています。こういったことが、以下のような間違った投稿につながっています。
幸運なことに、以下のような、より正確な投稿で釣り合いが取れました。
本記事では、みなさんが関心を持っている主な部分と、そこに対してJavaのエコシステムによって実施されたことを説明します。本記事を読み終わるころには、Java SEが今でも十分にメンテされており、その未来はかつてないほど輝いていると理解できるはずです。
2017年に発表された新しいバージョニングスキームに基づいて、Java SEのフィーチャーリリースは、6ヶ月ごとにリリースされます。JCPプロセスの改善により、OpenJDKコミッタは、6ヶ月のサイクルで仕様を変更するような機能 (たとえばJava SE 10でのvar) を導入できるようになりました。
Java / OpenJDKでのLTSは何を意味するのか?
さまざまなコントリビュータが、 (オラクルの主導で) OpenJDKのLTSについて、Java SE 11/17/23といったブランチを、6ヵ月より長い期間メンテナンスすることで合意しました。 オラクルは、OpenJDKのLTSブランチの最初の6ヵ月だけはメンテナンスを主導します。そして、そのメンテナンスに基づいてアップデートを提供し、Oracle OpenJDKビルドを作成します。しかし、その後は有償サポートのOralce JDKだけにしかアップデートを提供しません。 とはいうものの、オラクルは、他のOpenJDKベンダと共同してOpenJDKのコードラインを引き継ぎます。そして、アップデートを提供するために、他のベンダと共にそれに取り組んでいきます。各ベンダは、アップデートとベンダが作成したバイナリに対する有償サポートの提供、もしくはそのどちらかを提供することができます。 注記: このことは、OracleのJDKが、他プロバイダが作成するOpenJDKベースのバイナリと異なる可能性があるということを意味します (これは今までもつねにそうでした)。これは、バイナリがTCKをパスする限り、そうしたバイナリもTCKをパスしているのであれば、Java SE標準との互換性がありますので、安心してお使いください。 |
(LTSが何を意味するかを含めた) 新しいバージョニングスキームと新機能が導入される過程を理解すれば、各バージョンをどのようにメンテナンスしていけばいいか分かるはずです。メンテナンスとはセキュリティパッチと重要なバグフィックスを含んだアップデートリリースの提供を指します。
アップデート vs サポート アップデートはOpenJDKとOracle JDKに適用するコードパッチを指します。一般的にベンダが公式アップデート終了プロセスに入れると決定するまで無償で提供されます。 サポート はバグ修正の約束を指します。これはユーザの問題に対して回答するスタッフを必要とし、金銭的コストがかかります。誤解のないように言うと、Oracle JDKとOpenJDKに対し無償のサポートは今まで一度もありません。 |
OpenJDK 8 / Oracle JDK 8以前は、アップデートはオラクルと他のOpenJDKコミッタから“フィーチャーリリース”の中で提供されていました。(6ヵ月サイクルでリリースされた) 8u91、8u111、8u131のようなフィーチャーリリースは、次のフィーチャーリリースによって置き換えられてきました。たとえば、8u111がリリースされた時点で8u91へのアップデートは提供されません。
OpenJDK 9 / Oracle JDK 9以降、新しい6ヶ月のリリースサイクルが有効となり、アップデートは"フィーチャーリリース"間で発生します。すなわち、8u91 -> 8u111のように、12がリリースされた時点でオラクルから11へのアップデートは取得できません (しかし、おそらくレッドハットが主導して、オラクル以外のOpenJDKコミッタがこうしたアップデートを提供するでしょう)。
Java SE 8まで、オラクルは3年以上のライフサイクルであったOracle JDKに対し、アップデートを提供していました。これらのアップデートは個人でも、商用環境でも使用が許可されていました。アップデートはサポートなしで提供されました。サポートを得るにはオラクルからライセンスを購入する必要がありました。有償サポートは、必然的により長期のアップデートサイクルが伴うことにもなりました。
Java SE 9から、オラクルはOracle JDKにをより期間の短いサイクルに変更しました。また、オラクルはOpenJDKビルドの作成も始めました。アップデートは通常次のバージョンのリリースで終了するまでの6ヶ月間提供されます。より長い期間、もしくは本番環境に対してアップデート/サポートが必要であれば、オラクルから購入しなければなりません (すなわちOracle JDKを利用する必要があります)。リリースは、定期的に“LTS”と設定されます。こうしたリリースは、延長期間に対するオラクルの標準サポートライセンスを通じて、オラクルによりサポートされます。現時点でオラクルのOpenJDKビルドに対するアップデートプランは、アップデートを合わせて以下のようになっています。
オラクルのOpenJDK ビルドバージョン | リリース日 | |
8 | 2014年3月 | 少なくとも2020年1月 (個人デスクトップでの利用) 商用利用は2019年1月終了 |
9 | 2017年9月 | オラクルのOpenJDK 10のビルド提供時に終了予定 |
10 | 2018年3月 | 2018年9月オラクルのOpenJDK 11のビルド提供時に終了予定 |
11 | 2018年9月 | 2019年3月オラクルのOpenJDK 12のビルド提供時に終了予定 (延長の可能性あり) |
12 | 2019年3月 | オラクルのOpenJDK 13のビルド提供時に終了予定 |
13 | 2019年9月 | オラクルのOpenJDK 14のビルド提供時に終了予定 |
ここでのアイデアは単純です。Sunの時代のJava SEのモデルがそうであったように、オラクルは新しいイノベーションとJava SEを進化させることに注力します。レガシーなバージョンに留まりたい組織は商用サポートを適用することで、留まり続けられます。もちろん、Java SEユーザと開発会社の中にはこのような早いアップグレードが適していないところもあります。
OpenJDKコミュニティはオープンソースで無償のJava SE標準の実装を開発しています。オラクルはこのプロジェクトに大きく貢献しており、これはオラクルのOpenJDKビルドとOracle JDK両方の基盤となっています。OpenJDK 11以降は、Java SE標準に準拠しTCKでテストされたビルドを使用するアプリケーションに対しOracle JDKと相互互換性があります。オラクルは、Oracle OpenJDKビルドへのアップデートを提供する間、継続してOpenJDKへのコントリビュートをします。次のバージョンがリリースされてそのバージョンが終了となる時点で、オラクルは、そのバージョンへのコントリビュートをやめ、次のバージョンのアップデートを開始します。
オラクルはコミュニティによるメンテナンスというアイデアを (OpenJDK 6と7で) 好意的に受け入れており、次のバージョンの開発に移行した時点でOpenJDKを適任な有志のコミュニティに引き継げるようサポートを継続します。オラクルがOpenJDK 6とOpenJDK 7プロジェクトのアップデートを終了したあと、レッドハットがOpenJDK 6とOpenJDK 7を包括的に主導する (そして定期的なアップデートを提供する) 立場を買って出ました。レッドハットがOpenJDK 6の更新を停止したあと、Azul Systemsがプロジェクトをリードする立場を買って出ており、今日に至るまで継続してアップデートを提供しています。
2019年1月に、オラクルがOpenJDK 8のアップデートを停止したあと、レッドハットがOpenJDK 8のリーダに志願する意向です。重要なことですが、レッドハットはOpenJDK 6と7のプロジェクトを主導していますが、彼らが唯一のコントリビュータではないということに注意してください。他のベンダも時々パッチや修正を提供しています。OpenJDK 8では、レッドハット関連企業ではないところ、たとえばアマゾンやAzul、IBMなどからかつてないほどのコントリビュートがあるでしょう。
一貫性を持たせるため、OpenJDKのアップデートサイクルはOracle JDKでLTSとされたものと同じバージョンに対して延長されます。現時点でOpenJDKのサポートサイクルは以下のようになっています。
注記: これらの期間は変更される可能性があり、プロバイダごとに予定へのコミットメントが少しずつ異なります。したがって"少なくとも"という表現を使います。
バージョン | リリース日 | |
OpenJDK 6 | 主にAzul systemsがサポート | |
OpenJDK 7 | 少なくとも2020年6月まで主にレッドハットがサポート | |
OpenJDK 8 (LTS) | 2014年3月 | 少なくとも2023年9月まで。2019年1月以降はレッドハットが主導を志願し、アマゾンとAzul Systems、IBMその他がサポートする予定 |
OpenJDK 9 | 2017年9月 | OpenJDK 10がリリースされた時点で終了 |
OpenJDK 10 | 2018年3月 | 2018年9月OpenJDK 11がリリースされた時点で終了 |
OpenJDK 11 (LTS) | 2018年9月 | 未定、しかしOpenJDK 6 / 7 / 8の長期のライフサイクル相当となる |
OpenJDK 12 | 2019年3月 | OpenJDK 13で停止 |
OpenJDK 13 | 2019年9月 | OpenJDK 14で停止 |
今やアップデートと有償サポートの選択肢、もしくはそのどちらかを提供する多くのJava SE / OpenJDKプロバイダがあります。以下のセクションでは多くの詳細を掲載します。短いものがよければStephen Colebourne氏のJava SE 11 Options(邦題: Java SE 11の選択肢)という投稿に要約があります。
アップデート vs サポート アップデートはOpenJDKとOracle JDKに適用するコードパッチを指します。一般的にベンダが公式アップデート終了過程を経ると決定するまで無償で提供されます。 サポート はバグ修正の約束を指します。これはユーザの問題に対して回答するスタッフを必要とし、金銭的コストがかかります。誤解のないように言うと、Oracle JDKとOpenJDKに対し無償のサポートは今まで一度もありません。 |
適宜修正が必要な場合やあなたのユーザの要求に誰かが返答する必要がある場合、もしくは使用するバイナリがベンダから支援されたものであると安心したい場合、AzulやIBM、レッドハット、オラクルなどが選択肢を提供しています。
オープンソースソフトウェアへの金銭的支払いに関する哲学的観点
業界全体としてオープンソースソフトウェアを前進させるというのは、強固となっています。その"スピーチに対して使われるフリー"の性質のため、OSSライセンスにより、人々は法的措置の恐れなく、他者のソフトウェアを修正したり改変したりできます。 多くの人々はたくさんのOSSソフトウェアの"ビールに対して使われるフリー"の性質も享受していますが、これは作者に対し大変なコストとなります!ソフトウェア開発者は、誰でもそうですが、彼らが衣食住を満たせるようにする必要があります。オラクルのようなベンダはJava SEに大量の資金を投入しており (毎年少なくとも数千万ドルと考えてください)、どうにかしてそのコストを支払っていく必要があります。 従ってベンダの有償サポートの選択肢を1つ選ぶのはたしかにいい気分がしないでしょうが、Java SEのエコシステムが長期的に持続する未来を手に入れられるように、あなたを含めたエンドユーザはどのようなサポートができるのかについて考えてみることには時に価値があります! |
ソースからビルドする [OpenJDK、商用サポートなし、自分でビルドが必要]:
LinuxやWindows、Macなど向けの無償ビルド [OpenJDK、商用サポートなし]:
商用サポート [すべてJava SE準拠]:
Azul Systems [OpenJDKベース]:
IBM [OpenJDKベースのクラスライブラリ + Eclipse OpenJ9 VM]:
Oracle JDK [OpenJDKベース]:
レッドハット [OpenJDKベース]:
さまざまなLinuxディストリビュータがそれぞれのディストリビューションに対してOpenJDKを継続して提供します。DebianやUbuntu、CentOS、Fedora、Mint、Alpineなどですがそれだけに限りません。
詳細はディストリビュータのホームページを見てください。
AdoptOpenJDKは幅広いプラットフォーム (LinuxやMac、Windows 32/64、Arm 32/64、 z/OS、Solaris、AIX、PPC、s390など) に対してOpenJDKのバイナリ配布 (HotSpotとEclipse OpenJ9) を提供します。
AzulはOpenJDKバイナリ (Zulu) と特化したJavaプラットフォーム (Zing) を提供します。
Azulは、LTSバージョン間にある全Javaバージョンをスキップしたくないけれど、6ヶ月ごとに新しいバージョンへ移行できない企業すべてに対し、選択肢を提供しています。そして、全LTSリリースをサポートするため、Azulはオラクルより1年長いサポートを提供しています。AzulはZulu JDKに対して中期間サポート (MTS) と呼ぶサポートを提供しています。こちらだとLTSかどうかに関わりなく1バージョンおきのJava SE商用サポートを購入できます。こららのバージョンのサポート期間は異なります。Azulは次のバージョンへの移行に適した準備期間を提供しようとしており、Java SEバージョンのサポートに対して3つの異なる期間を定めています。
オラクルとは異なり、Zuluの商用サポートはCPU単位の定義ではなく、システムの数に基づきます。システムとは物理もしくは仮想サーバとして定義します。スタンダードサポートとプレミアムサポートの違いはサポート提供時間だけです。プレミアムサポートでは24時間年中無休でAzulを呼び出せます。
IBMはAIXやLinux (x86、Power、zSystems)、 z/OS、IBM i用のネイティブJDKバイナリを提供しています。IBMはIBM製品やプラットフォームの利用に合わせてJava SEのIBM SDKを提供しています。また開発用途ではdeveloperWorksから取得できます。IBMはAdoptOpenJDKでビルドしテストしたOpenJDK (Eclipse OpenJ9使用) のバイナリも提供しています。
Java SE 7と8向けに、IBMは今もセキュリティアップデートとバグフィックスを提供しています。IBMのサポートライフサイクルは継続して更新されます。新しいJava SEリリーススケジュールに基づき、IBMは、LTSでないリリースを、OpenJ9を使用するOpenJDKバイナリとして、AdoptOpenJDKから提供すると発表しました。
オラクルは2つのJDKバイナリを作成します。以前からあるOracle JDKとOracleのOpenJDKビルドです。
2018年6月、オラクルは時代に合わなくなった“Java SE Advanced”無期限ライセンスサポート製品をライセンスとサポートを含んだサブスクリプションベースでの提供に置き換えました。そのうちの1つはデスクトップでのJava SEを対象にしており、もう1つはサーバやクラウドでのJava SEと一般的なJava SEを対象にしています。デスクトップでJava SEを使わないのであれば“Java SE Subscription”が適切なサポートモデルとなるでしょう。クライアントアプリケーション向けにデスクトップでJava SEを使用するのであれば“Java SE Desktop Subscription”製品が利用できます。ソフトウェアがJava SEサーバとJava SEベースのクライアントを使用するなら両方の製品に申し込みます。
デスクトップのJava SEアプリケーションに対する商用サポートはいくつかの企業にとって非常に重要となるかもしれません。オラクルはJava SEのバージョン11から重要なデスクトップ機能のいくつかをJDKから除外する予定だからです。デスクトップでJava SEを使っている場合以下の記事を読むことを強くお勧めします。
レッドハットはRed Hat Enterprise Linuxが動作するさまざまなプラットフォーム向けにOpenJDKバイナリを作成しています。
レッドハットはJava SE 9と10のリリースを提供する予定はありません。レッドハットがリリースを計画している次の配布はRed Hat Enterprise Linux 7向けのOpenJDK 11です。現在、Java SE 8がRed Hat Enterprise Linux向けのサポートされたリリースであり、レッドハットは2023年までこれをサポートする予定です。
Desktop Java SEはOracle JDK 11から多数の変更が入るため、注意が必要です。
Java SE 11から、OpenJDKビルドにもOracle JDKバイナリにもJavaFXのライブラリはありません。JavaFXコンポーネントは単独のSDKとしてもしくはビルドツール (たとえばApache MavenやGradleなど) から使用できる成果物として提供されます。この分離でのポジティブな結果として、JavaFXの開発は独自のロードマップを持てるようになりました。
JavaFXは今もOpenJFXで開発されています。これはOpenJDKコミュニティ傘下のプロジェクトです。オラクルや他の企業、より広いコミュニティにいる個人が活発にJavaFXを開発しています。自動的に同期されるGitHubのミラーも作成されており、JavaFXに対してコードや課題でコントリビュートしたい開発者に対してハードルを低くしています。
現時点でOpenJFXに対するビルドはGluonからのみ提供されています。OpenJFXの全ソースコードは100%公開されており、誰でもバイナリを作成したり配布したりできます。OpenJFXでは、OpenJDKのものと同様のアプローチが採られており、JavaFX 11のリリース後はJavaFX 12に注力する、といったことになります。JavaFX開発者とユーザはOpenJFXの最新リリースバージョンの利用が推奨されています。
GluonはJavaFX 11に対して長期間のサポートを望む企業に対しサポートプランを提供しています。
javapackagerはアプリケーションとそれが依存するものをJVM (のサブセット) にバンドルできるようにするものですが、もはやOpenJFXの一部ではなくなり、Java 11からOracle JDKからも OracleのOpenJDKビルドからも削除されます。OpenJDKにJavaのパッケージングツールを追加するJEPが提案されています。新しいJavaのパッケージングツールはJava 11のリリースには間に合いませんが、GluonはJava 11のアプリケーションをネイティブイメージにパッケージングできるようにするツールを開発しています。
デスクトップクライアントの配布にJava Web Start技術を使っている場合できるだけ早く現在の状況に関心を持っておくべきです。オラクルがJavaからWeb Startを削除するからです。
上記の投稿では、みなさんがまさに質問したかったことへの答えを説明するものになっていないかもしれない、という認識はあります。なのでFAQを。
Q. OpenJDKとOracleのOpenJDKビルド、そしてOracle JDKの違いは?
ここではJava 11以降のLTSリリースについてのみ話します。Oracle JDKとオラクルのOpenJDKビルドは同一のものですが、異なる方法でライセンスされています (それぞれ商用とGPLv2+CE)。
Oracle JDK / オラクルのOpenJDKビルドと他プロバイダのOpenJDKビルドは最初の6ヶ月間のアップデートに対して同じソースからビルドされ、この期間は互換性があるはずです。6ヶ月経つとOracle JDK / オラクルのOpenJDKビルドはオラクルの独自フォークからビルドされます。他のOpenJDKプロバイダはOpenJDKのアップデートプロジェクトから継続してビルドを作成します。そのため、Oracle JDK / オラクルのOpenJDKビルドと他プロバイダのOpenJDKビルドは、少しやり方が異なります。さまざまな団体からのバイナリは当然ながら時間とともに変化するかもしれません。
Q. (オラクル以外の) プロバイダAのOpenJDKとプロバイダBのOpenJDKの違いは?
ここではLTSリリースについてのみ話します。Java SE 6とJava SE 7のアップデートプロジェクトの場合のように、さまざまなプロバイダがOpenJDKコミュニティにおけるアップストリーム版 (訳注: 開発版的な意味合い) を一緒に開発します。OpenJDKコミュニティは、共通のリポジトリやメーリングリスト、作業を共有するその他インフラを提供しています。その意味としては、OpenJDKベースのバイナリ間にある違いはたいていコアでない機能、たとえば拡張したモニタリングや診断サポートといったものにあるということです。最終的なバイナリにおいては小さな違いがあるかもしれませんが (おそらくプロバイダ独自のツールなど)、今まで長年そうであったように少なくとも同じセキュリティと安定性の基準を持っています。
Oracle JDK 8と11に対するオラクルからの公式アップデート終了はすぐなので、どの選択をするのかまだはっきりしない人もいます。
Q. Oracle JDK 8 / 11を使い続ける場合、セキュリティやバグの修正を得るためには費用がかかりますか?
Oracle JDK 8は、個人のデスクトップ利用であればかかりません。商用利用では2019年1月以降費用がかかります。Java SE 11以降のOracleのOpenJDKビルドは、最初の6ヶ月のアップデート以降費用がかかります。
Q. OpenJDK 8 / 11を使い続ける場合、セキュリティやバグの修正を得るためには費用がかかりますか?
必ずしもそうではありません。Java SE 6やJava SE 7の場合では、オラクルがOpenJDKコミュニティと連携し、OpenJDKのアップデートプロジェクトのリーダーシップを他のコントリビュータに移行しました。これは10年間に渡りうまく機能してきました。レッドハットがオラクルや他の企業から助けを借りて、OpenJDK 8とOpenJDK 11においてこのリーダーシップを継続する可能性が非常に高いです。これが意味することは、重要なパッチは選択の上バックポートされるであろうということです。さまざまなプロバイダから提供される旧バージョンのOpenJDKベースのバイナリを、無償もしくは有償サポート提供の一部として利用する、という選択肢がみなさんにはあります。特に、OpenJDKには脆弱性調査グループがあり、これはゼロデイ・エクスプロイトやCVEの不具合を処理し、修正を可能な限り早く公開することを保証しています。
Q. Oracle JDK 8と11は今後もダウンロード提供されますか (公式リリースは最後ですか)?たとえば、ある企業がOracle JDK 8上でだけ動作するソフトウェアを保持していて、2019年1月以降に新しいマシンにセットアップする場合です。
今後も、公式アップデートが終了する時点までの、古いバージョンのOracle JDKをダウンロードできます。これらのアーカイブが削除されると考えるべき理由はありません。さらに、Oracle JDK 8は、少なくとも2020年まで個人のデスクトップでの利用に対して無償でアップデートが提供されます。
Q. 商用ソフトウェアの実行にOracle JDK 8を使っている場合、2019年1月以降はライセンスを購入する必要がありますか?
いいえ。ユーザは費用を支払うことなく無期限でOracle JDK 8を使い続けることができます。コストがかかるのは2019年1月以降アップデートを取得したい場合のみです。この場合"Oracle Java SE subscription"を購入する必要があります。これは通常の“公式アップデート終了”過程のあとに起こります。実際のところ10年以上そうなっています。 また、Oracle JDK 8は、少なくとも2020年まで個人のデスクトップでの利用に対して無償でアップデートが提供されることにも注意してください。
Q. 2019年1月以降、Oracle Java Web Start には何が起こりますか?継続して使い続けられますか、もしくは2019年1月の時点でライセンスを購入する必要があるのですか?
Web StartはOracle JDK 8の一部なので、Web Startは機能し続けており、無期限にコストなしで利用できています。上述のようにアップデート (バグフィックスとセキュリティパッチ) が必要な場合、"Java SE subscription"を購入する必要があります。顧客がみなさんのエンドユーザである場合、Oracle JDK 8を個人のデスクトップアプリケーションで使用する場合と同様に、少なくとも2020年まで無償での利用が保障されます。オラクルは少なくとも2025年3月までJava Web Startを継続してサポート (すなわちWeb Start対して商用アップデートを提供する) と表明しています。
またIcedTea-Webが代替としてあり、KarakunがWeb StartのOSSの代替製品を開発しています。.
ブログ投稿で下地を作ってくれた以下の人々に特に感謝します。このドキュメントにある多数のリンクや資料はこれらの情報源から (許可を得て) コピーして照合したものです。
以下のJavaエコシステムの人々はこのドキュメントをJava SE / OpenJDKの状態と、無償アップデートと有償アップデート、もしくはそのどちらかの今後の予定への公正で偏りのない記録として裏付けをしています。
名前 | 経歴 |
Martijn Verburg | AdoptOpenJDKの共同リーダ、 Javaチャンピオン、ロンドンJUGリーダ、JCP Executive Committeeメンバ、Jakarta EE Steering Committeeメンバ、@jClarityのCEO |
Hendrik Ebbers | Javaチャンピオン、JUG Dortmundリーダ, JSR EGメンバ、Karakun共同創業者 |
Ivar Grimstad | Javaチャンピオン、Malmö JUGリーダ、JCP Executive Committeeメンバ、EE4J PMCリード、Jakarta EE WGメンバ |
Markus Eisele | Javaチャンピオン |
Heinz Kabutz | Javaチャンピオン、The Java Specialists’ Newsletter, JCrete創設者 |
Ivan St. Ivanov | Javaチャンピオン、Bulgarian JUGリーダ、jPrimeカンファレンス主催者、Virtual JUGリーダ、VIDA Software共同創業者兼シニアプログラマ |
Stephen Colebourne | Javaチャンピオン、JodaとThreeTenプロジェクトの作者 |
Trisha Gee | Javaチャンピオン、Sevilla Javaユーザグループリーダ、JCP Executive Committeeメンバ、JetBrainsのJavaディベロッパアドボケイト |
Josh Long | Javaチャンピオン、PivotalのSpringディベロッパアドボケイト、ベストセラー書籍の著者で世界中で講演しているスピーカ |
Gail Anderson | Javaチャンピオン、Oracle Developer Champion、Anderson Software Group, Inc共同創業者 |
Justin Lee | Javaチャンピオン、JSR EGメンバ |
Mattias Karlsson | Javaチャンピオン、JUGリーダでJfokusカンファレンス創設者 |
Andres Almiray | Javaチャンピオン、JCP ECメンバ、Oracle Developer Champion、 世界中でHackergartenを開催 |
Enrique Zamudio | Javaチャンピオン、 JVMMX (Mexico City JUG), author of j8583, jAlarms, Ceylon to Javascript compiler |
Alan Williamson | Javaチャンピオン、著者、ポッドキャスト配信者、MacLaurin GroupのCTO |
Maurice Naftalin | Javaチャンピオン、Oracle Developer Champion、著者 |
Mark Heckler | Javaチャンピオン、PivotalのSpringディベロッパアドボケイト、カンファレンススピーカ、著者 |
Kirk Pepperdine | Javaチャンピオン、jCrete共同創設者、パフォーマンスチューニングアドボケイト、jClarity共同創業者 |
Matt Raible | Javaチャンピオン、Web開発者、Oktaのディベロッパアドボケイト、クラシックの VWの熱狂者 |
Henri Tremblay | Javaチャンピオン、Montréal JUGとDevoxx4kids Québecのリーダ、EasyMockとObjenesisのリード開発者、カンファレンススピーカ |
Cay Horstmann | Javaチャンピオン、“Core Java”著者 |
David Heffelfinger | Javaチャンピオン、Apache NetBeansコミッタ、技術系著者、Jakarta EEコンサルタントでインストラクタ |
Josh Juneau | Javaチャンピオン、Apache NetBeansコミッタ、Jakarta EE Mojarraコミッタ、技術系著者、ポッドキャスト配信者 |
Jonathan Giles | Javaチャンピオン、Dukes Choice Award受賞者、Microsoft Cloudディベロッパアドボケイト、Co-founder共同創業者 |
Ben Evans | Javaチャンピオン、元JCP ECメンバ、jClarity共同創業者、“Java in a Nutshell”と“Optimizing Java”の著者 |
Johan Vos | Javaチャンピオン、Oracle Developer Champion、Gluon共同創業者 |
Thor Henning hetland | Javaチャンピオン、Capra Consultingのプリンシパル。CantaraとjavaBin、JavaZone、Oslo Software Architectureなどのコミュニティリーダ |
Simone Bordet | Javaチャンピオン、JUG Torino共同リーダ、Jettyチームメンバ |
Holly Cummins | Javaチャンピオン、Enterprise OSGi in Action著者 |
Daniel Bryant | Javaチャンピオン、Continuous Delivery in Java共著者、LJC内のリーダ |
Mohamed Taman | Javaチャンピオン、Oracle Developer Champion、JCPメンバ、EGJUGリーダ、セルビア、ベオフラードにあるWebCentricのシニアエンタープライズアーキテクト / シニアソフトウェアエンジニア。国際的スピーカ。"JavaFX essentials"、"Getting started with clean code, Java SE 9"、“Hands-On Java 10 Programming with JShell”の著者。Duke’s choice 2015、2014の受賞者、JCPのoutstanding adopt-a-jar participant 2013受賞者 |
Simon Maple | Javaチャンピオン、Oracle Developer Champion、Virtual JUGリーダ、SnykのDeveloper Relationのディレクタ |
Oliver Gierke | Javaチャンピオン、Pivotal Software, IncのSpring Dataプロジェクトリード |
Jean-Michel Doudoux | Javaチャンピオン、“Développons en Java”著者 |
Michael Kölling | Javaチャンピオン、BlueJとGreenfootの作者、‘Objects First with Java’著者 |
Mert Çalışkan | Javaチャンピオン、OpsGenie Academyのディレクタ、著者、スピーカ |
Leonardo M R Lima | Javaチャンピオン、JSRスペックリード |
Cesar Hernandez | Javaチャンピオン、Tomitribeのシニアソフトウェアエンジニア、Eclipseファウンデーションコミッタ、Guatemala Javaユーザグループメンバ、スピーカ、Latin America Virtual JUG JEspañolのボードメンバ |
Rustam Mehmandarov | Javaチャンピオン、チーフエンジニア、JavaZoneリーダ、javaBin – ノルウェーのJavaユーザグループのボードメンバで元リーダ |
Paul Bakker | Javaチャンピオン、Netflixのシニアソフトウェアエンジニア |
Geir Magnusson Jr | Javaチャンピオン、Apache Software Foundationメンバ、fuboTVのCTO |
Jorge Vargas | Javaチャンピオン、メキシコのJUGであるJavaUPのリーダ、JEspañol JUGのスピーカでメンバ |
Bruno Souza | Javaチャンピオン、SouJava JUGのリーダ |
Ian F. Darwin | Javaチャンピオン、開発者、著者、トレーナ、メンタ、スピーカ、オライリーのJava CookbookやAndroid Cookbookなどの著者 |