2016年3月25日、Java SEのチーフアーキテクトであるMark Reinhold氏がblogで次のように述べました。
"The last major component, the module system itself (JSR 376 and JEP 261), was integrated into JDK 9 earlier this week and is now available for testing in early-access build 111."
"最後のメジャーなコンポーネント、つまりモジュールシステムそれ自体(JSR 376とJEP 261)が今週はじめにJDK 9に統合されました。アーリーアクセスのbuild 111からテスト用に使用できます。"
(Project Jigsaw: The module systemより引用。訳は筆者)
ここでモジュールシステムと書かれているのが、今回から紹介しようとしているProject Jigsawのことです。
JSRと書かれているのは、Javaの標準を策定するJCPにおける仕様の番号(Java Specification Request)です。JSR 376がProject JigsawのJSRになります。正式名称はJSR 376 Java Platform Module Systemです。
もう一方のJEPというのは、OpenJDKにおける拡張提案(JDK Enhancement Proposals)になります。JEPは、JSRに比べると細かな拡張となることが多いです。Project Jigsawは6のJEPから成りますが、JEP 261 Module SystemがProject Jigsawの中心となります。
これまでProject JigsawはOpenJDKのProject Jigsaw内で開発が進められていましたが、3月25日の週にこれらがJDK 9に統合されたのです。JDK 9は毎週ビルドを公開しており、3月25日に公開されたbuild 111からProject Jigsawが統合されています。毎週公開されるビルドはアーリーアクセスとしてjava.netからダウンロードできます。
つまり、Project Jigsawが試しやすくなったというわけです。
そこで、今回からJava SE 9の先取りとして、Project Jigsawを紹介していきます。まず、Project Jigsawの経緯や、その目的について説明します。
なお、Java SE 9はまだ仕様が確定していないため、今後変更の可能性もあります。その点はご了承ください。