Oracle JDKから他のJDKへの移行しても問題ないか考える

Java9以降、無償で長期にJDKを使い続ける場合Oracle JDKから他のJDKに変更することになるが、変更しても問題ないかを機能およびサポートの面から考える

結論からいうと、機能およびサポートから考えるとOracle JDKから他のJDK(Open JDKビルド)に移行しても問題ないと考えることができる。

機能的にほぼ同じなので問題ない

まずは機能的差異の話。もちろん全く一緒ではないが差はわずかである。

Java 11以降であればOracle JDKとOpenJDKの差は限定的

TCKにパスしているはずである

  • JDKプロバイダが大々的にJavaを名乗るにはTCKをパスしなくてはいけない

  • 有名どころのJDKプロバイダはやってくれるはずなので、TCKによっても担保されるはず

    • ほんとにやっているかが気になる場合は各JDKプロバイダのドキュメントなどで確認する

サポートも大差ないJDKがあるので問題ない

続いてサポートの話。これはJDKプロバイダによるところが大きいが、Oracle JDKが以前行っていたのと同等のものもを提供してくれるJDKプロバイダがあるので問題ない。

サポートを3つで分けて考える

そもそもサポートと一口に言っても広く、人によって想像するものが異なる場合がある。 ここではKUBOTA Yuji(@sugarlife)さんの資料の考え方を引用させてもらい、サポートを次の3つで考えることとする。

  • 開発サポート

  • 配信サポート

  • 問合せサポート

開発サポート、配信サポート、問合せサポート

それぞれのサポートについてのこれまでとこれからをまとめる。

開発サポート
  • 開発サポートは(リリース済みバージョンの)バグ修正、セキュリティ対応、機能拡張などの維持管理開発のこと

  • これは基本的にOpenJDKが行っている

    • (特にJDK 11以降)Oracleが独自で行っていることはない

  • OpenJDKの開発サポートにもサポート期間はあるので注意する

    • LTSに相当するものは長期でサポートされる予定。

配信サポート
  • 配信サポートはバイナリの(ビルドも含め)配信・提供のこと

  • これはOracle JDKがこれまで長くしっかりやってくれていた

  • おそらくここが一番欲しいところで、他のJDK選択で重要なポイントになる

  • 注意しなければいけないのはOpenJDKは配信をサポートはしていない

    • OpenJDKはあくまでも開発と維持管理のみ

    • OpenJDKトップページのDownloadのリンクは、Oracle提供のOpenJDKビルドのダウンロードページ

      • なので、サポート期間に注意(1つのバージョンは6ヶ月間のみのサポート)

問合せサポート
  • 問合せサポートはSLA(Service Level Agreement)で定められるレベルの問合せ対応などのこと

  • これまでのOracle JDKでも無償ではやっていない

    • 無償でOracle JDK使っていた人も、ちゃんとした問い合わせサポートはしたこと無いはず。

    • 有償であれば存在していた

  • これを無償でやってくるJDKプロバイダは今も昔もないので、これをJDKプロバイダに求める場合は有償と考えられる。

まとめて考えると

結論として3つのサポートを総合して考える。

「開発サポート」「問合せサポート」はOracle JDKでもどのJDKプロバイダでも差が無い。

  • 「開発サポート」はOpenJDKが行うのでどのJDKプロバイダでも変わらない。

  • 「問合せサポート」はそもそも(Oracle JDKでも)無償では提供されていない(もちろんサポートの内容の差はある。ここでは有償無償という意味で差が無い)。

なので「配信サポート」がポイントになる。「配信サポート」が無償でそれなりに長いJDKプロバイダが存在すれば、以前のOracle JDKと同等のサービスが受けられることになる。そして、そういったJDKプロバイダは存在する(Adopt Open JDKなど)。

よって、サポートの視点から考えてもOracle JDKから移行しても遜色ないと考えられる。

Appendix A: 改訂履歴

  • v1.0, 2019-01-04: 初稿