[Java] Oracle JDK Releases for Java 11 and Later

原文はこちら。
https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

Exec Summary

Starting with Java 11から、Oracleはクラスパス例外付きGNU General Public License v2(GPLv2+CPE)と、Oracle製品やサービスの一部としてのOracle JDKで使用したり、オープンソースソフトウェアの利用したくなかったりする方向けに商用ライセンス、その両方でJDKを提供します。
GNU General Public License, version 2, with the Classpath Exception
http://openjdk.java.net/legal/gplv2+ce.html
オープンソースライセンスと商用ライセンスを組み合わせることで、フリーのライセンスと有料の商用ライセンスを組み合わせたこれまでの"BCL"ライセンスを置き換えます。
Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX
https://java.com/license
各ライセンスごとに異なるビルドが用意されていますが、これらのビルドは、表装とパッケージが異なるとはいえ、機能的に同じです。詳細は後述します。

From the BCL to the GPL

Binary Code License for Oracle Java SE technologies(BCL)は、10年以上も前からOracle Java SEテクノロジの主要なライセンスとなっています。
Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX
https://java.com/license
BCLは、特定の条件下でライセンス料なしでの使用を許可します。今後の作業を簡素化するために、OracleはLinuxプラットフォームと同じライセンス・モデルを使用し、Java 9のオープンソースのOpenJDKビルドの提供を開始しました。
Java Development Kit builds, from Oracle
http://jdk.java.net/
Oracle Java SEバイナリを無料で入手することに慣れている場合は、 jdk.java.net で入手可能なOracleのOpenJDKビルドをそのまま使用してください。Oracle Java SEバイナリをOracleの製品またはサービスの一部として使用している場合は、My Oracle Support(MOS)およびその他の場所からOracle JDKリリースを引き続き入手できます。
My Oracle Support
https://support.oracle.com

Functionally identical and interchangeable...

OracleのBCLライセンスJDKには、これまでOpenJDKビルドでは利用できなかった「商用機能」が含まれていました。しかし昨年、約束通りOracleはOpenJDKコミュニティに次のような機能を寄贈しました。
Accelerating the JDK release cadence
http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
したがって、Java 11以後はOracle JDKビルドとOpenJDKビルドは本質的に同じです。
OpenJDK
http://jdk.java.net/

...yet with some cosmetic and packaging differences

OpenJDKコントリビュータと議論する時間が必要ゆえに、意図的で表装的な違いが残っています。
  • Oracle JDK 11では、-XX:+UnlockCommercialFeaturesオプションを使用すると警告が発行されますが、OpenJDKビルドではこのオプションでエラーが発生します。このオプションはOpenJDKの一部ではないためです。OpenJDKには商用機能がないため、このオプションを追加することは意味がありません。Oracle JDK 10およびそれ以前のリリースのユーザーがOracle JDK 11以降に移行しやすくするためにこの違いが残ります。
  • Oracle JDK 11を構成し、Oracleの別の商用製品であるAdvanced Management Consoleに使用状況のログ・データを提供することができます。
    Advanced Management Console
    https://www.oracle.com/technetwork/java/javaseproducts/advanced-mgmt/advancedmanagementconsole-2254207.html
    可能性があれば、他のOpenJDKコントリビュータ協力して、将来のリリースでOpenJDKでこのような使用データがどのように役立つかについて議論する予定です。主として、上記を決定するまで、Oracleのお客様に一貫した経験を提供するために、この違いが残っています。
  • javac --releaseコマンドは、Java 9とJava 10では動作が異なります。これらのリリースでは、Oracle JDKには対応するOpenJDKリリースにはない追加のモジュールが含まれていたためです。
    • javafx.base
    • javafx.controls
    • javafx.fxml
    • javafx.graphics
    • javafx.media
    • javafx.web
    • java.jnlp
    • jdk.jfr
    • jdk.management.cmm
    • jdk.management.jfr
    • jdk.management.resource
    • jdk.packager.services
    • jdk.snmp
    特定の種類のレガシー用途のための一貫したエクスペリエンスを提供するために、この違いが残ります。これらのモジュールはOpenJFXの一部として別途入手可能であったり、Flight RecorderのようなOracleがOpenJDKに寄贈したOpenJDK(Flight Recorderなど)に提供された商用機能のためにOpenJDKとOracle JDKの両方にあったり、JNLPなどのようにOracle JDKから削除されていたりします。
    OpenJFX Project
    http://openjdk.java.net/projects/openjfx/
  • サポートチームは存在する可能性のある問題を診断できるよう、java --versionjava -fullversionコマンドの出力結果は、OpenJDKビルドとOracle JDKで異なります。具体的には、Oracle JDK 11ビルドでjava --versionを実行すると以下のような出力が得られます。
  • java 11 2018-09-25
    
    Java(TM) SE Runtime Environment 18.9 (build 11+28)
    
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
    
    OpenJDK 11ビルドの場合は以下の通りです。
    openjdk version "11" 2018-09-25
    
    OpenJDK Runtime Environment 18.9 (build 11+28)
    
    OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
    
  • Oracle JDKでは、サード・パーティの暗号化プロバイダを既知の証明書で常に署名する必要があります。OpenJDKの暗号化フレームワークにはオープンな暗号化インタフェースがあります。つまり、利用可能なプロバイダを制限しません。Oracle JDK 11は引き続き有効な署名を必要とし、Oracle OpenJDKビルドは引き続き有効な署名または署名されていない第三者の暗号化プロバイダの使用を許可します。
    Java Platform, Standard Edition Security Developer’s Guide
    Sign Your JAR File, If Necessary
    https://docs.oracle.com/javase/10/security/howtoimplaprovider.htm#JSSEC-GUID-2D4432F9-1C3C-4A91-8612-2B2840188B36
  • 過去のデスクトップユースと調和する体験のため、Oracle JDK 11には引き続きインストーラ、ブランディング、およびJREパッケージが含まれる予定です。Oracle OpenJDKのビルドは現在、zipおよびtar.gzファイルで提供していますが、代替の配布フォーマットは現在検討中です。

What should we call them?

理想的には、状況に応じて、GPLまたは商用ライセンスのもとで、すべてのOracle JDKビルドを「Oracle JDK」と呼びますが、残っている小さな相違点が残っている歴史的な理由から、OracleのOpenJDKビルドとOracle JDKを分けて表現します。

0 件のコメント:

コメントを投稿