orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

(重要)Oracle Java 11から、ライセンス契約の内容がガラリと変わっています | 無償利用は非商用・開発用途のみ

f:id:orangeitems:20180926151706j:plain

 

Oracle Javaに訪れた大きな変化に気が付いていない人が多い

2018年9月26日に、Oracle Java 11がリリースされました。

Oracleからダウンロード可能となっていて、これまでいろいろ騒ぎになっていた割にはいつもと同じ景色で拍子抜けしたという方も多いのではないでしょうか。

何も世界は変わっていない。

しかし、それは勘違いです。以下の文を、ご理解ください。

 

契約が変わった

Oracle Java 10までは、

Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX

(Java SEプラットフォーム製品およびJavaFX用のOracleバイナリコードライセンス契約)

という契約でした。全文はこちら(オラクルのサイト)をご確認ください。

 

Oracle Java 11からは、

Oracle Technology Network License Agreement for Oracle Java SE

(Oracle Java SEのOracle Technology Networkライセンス契約)

に代わっています。原文はこちらです。日本語訳はまだないのですが、よくよく考えたらいわゆるOTN開発者ライセンスのことで、Oracle Databaseなど使っている方はなじみが深いはずです。こちらの内容が一致します。

 

Oracle Java 11は、これまでのOracle Javaと同じたたずまいですが、Oracle Databaseなどと同じOTN開発者ライセンスが適用されてしまったのです。

 

裏を取りたい方は、下記より、赤枠のリンクをクリックしてみてください。見事にライセンスの内容が置き換わっているのがわかります。

Java SE - Downloads | Oracle Technology Network | Oracle

f:id:orangeitems:20180926152058p:plain

 

 

開発用途にしか使ってはいけない

これまでのOracle Java10までに適用されてきたバイナリコードライセンス契約は、補足ライセンスの中で、以下がうたわれていました。

A.商用機能

社内の業務運営でプログラム、Javaアプレット又はアプリケーションを実行する目的、商用もしくは本番目的、又は本補足条項のセクションB、C、D及びEに記載されていない目的で、商用機能を使用することはできません。本契約で許可されている以外の目的で商用機能を使用することを希望する場合、オラクルから別途ライセンスを取得する必要があります。

B.開発に関するライセンス供与によるソフトウェアの内部使用

(省略)

C.ソフトウェアの頒布許可

(省略)

D.再頒布可能ファイルの頒布許可

(省略)

E.パブリッシャによる頒布

(省略)

つまり、B/C/D/Eはいわゆる商用でのシステム開発が含まれているため、商用システムJava8を組み込むことは普通にできていたわけです。

 

Oracle Java11以降のOracle Technology Networkライセンス契約では、どうでしょう。

オラクルはお客様に、本契約に明示する制限に従って、お客様のアプリケーションの開発、テスト、プロトタイプ作成、及びデモンストレーションのみを目的として(かつ、お客様のアプリケーションが、データ処理、業務、商用又は本番利用を目的として使用されたことがない場合に限られます)、その他のいかなる目的でもなく、本プログラムを内部的に使用するための、非独占的、譲渡不能の限定的なライセンスを許諾します。

 シンプルにこの記載に凝縮されます。

 

ダウンロードしてもいいんです。使ってもいいんです。非商用利用ならば。本番システムに載せることは決してできないライセンスです。Oracle Java 11のライセンスが変わったことを強調した記事がないので正しい認識を持っていただくために本記事を作成しました。

もっと例えれば、開発用としてOracle Databaseをダウンロードしシステム開発。Oracle Databaseライセンスを購入しないまま本番システムに組み込みそのまま運用するぐらい、違法なことになるのです。今日公開されたOracle Java 11はそういうJavaなのです。

 

サポートがどうこうという問題ではない。契約の問題だった。

どうもセキュリティーパッチが出る出ないの問題にこだわり過ぎていたように思います。こんなに明確にライセンスが変更された今になっては、商用システム開発においてOracle Javaの本番後の有償サポートは必須です。

Oracleへの支払いがどうしても認められないのなら、OpenJDK一択となります。こちらを11からは使うべきです。RedHat社が間もなくRHEL7に出すと思われるOpenJDK 11をLTSで使うのが私は最も手堅いと思います。