全3001文字

 「高額なJavaのライセンス料を請求される企業が後を絶たない」――。Javaのライセンスに詳しいITコンサルタントはこのように警鐘を鳴らす。ライセンスを気にせずJavaを利用していたところ、ある日突然、高額なライセンス料を請求されるのだという。

 Javaプログラムの開発・実行に欠かせないのが、JDK(Java Development Kit)だ。JDKにはJavaプログラムの開発・実行に必要なソフトウエアが含まれる。例えばJava SE(Java Platform Standard Edition)の仕様に準じたAPI実装やJava仮想マシン(JVM)、Javaコンパイラーなどである。現在、様々なベンダーがJDKを提供し、サポート期間やライセンス料がJDKごとに異なる。

 米Oracle(オラクル)が提供するJDKディストリビューションには「Oracle OpenJDK」と「Oracle JDK」の2種類がある。どちらもオープンソースコミュニティーが中心となって開発するJavaの開発・実行環境「OpenJDK」をベースにしている。ただし商用利用では重要な長期サポートを提供するLTS(Long Term Support)版はOracle JDKにしかない。

幾度となくライセンス体系を変更

 オラクルは、Javaとその実装であるOracle JDKのライセンス体系を幾度となく変更してきた。最初の大きな変更が「Oracle Technology Network License」(OTNライセンス)の適用である。2018年9月にリリースしたJava 11(Oracle JDK 11)以降が対象となった。

 Java 10(Oracle JDK 10)までのライセンスは「Oracle Binary Code License」(BCL)という。このライセンスは、個人利用だけでなく、商用利用も無料だった。本番環境に導入しても無料だ。一方、OTNライセンスは個人利用や開発目的の利用は無料だが、本番環境で運用するといった商用利用の際には「Oracle Java SE Subscription」などのライセンスを購入しなければならない。2018年にJava有償化が話題になったのは、このOTNライセンスによるものだ。

Javaのバージョンによるライセンスの違い
Javaのバージョンによるライセンスの違い
(出所:日経クロステック)
[画像のクリックで拡大表示]

 しかしオラクルは再びライセンスを変更する。2021年9月に新たなライセンス「Oracle No-Fee Terms and Conditions License」(NFTCライセンス)を発表した。Java 17(Oracle JDK 17)以降のバージョンに適用されるライセンスで、基本的に商用利用や本番環境での利用も無料である。

 ただしNFTCライセンスには、次期LTS版がリリースされてから1年という期限がある。2023年9月に最新のLTS版であるJava 21(Oracle JDK 21)がリリースされた。このため、Java 17(Oracle JDK 17)は2024年9月にNFTCライセンスの期間が終了する。それ以降はOTNライセンスに移行する。