http://mreinhold.org/blog/jigsaw-modular-images
以前投稿したように、Project Jigsawがいくつかのステップを踏んでJDK 9に組み入れられています。
Project Jigsaw: Phase TwoJEP 200ではJDKのモジュラー構造を定義し、JEP 201ではJDKのソースコードをモジュラー型に再編成し、そしてJEP 220ではモジュールをサポートするようにJDKおよびJREランタイムイメージを再構成します。実際のモジュールシステムはJSR 376(現在作業中)で定義し、対応するJEP(まだ発行されていません)によって実装される予定です。
http://mreinhold.org/blog/jigsaw-phase-two
Project Jigsaw
http://openjdk.java.net/projects/jigsaw/
JDK 9
http://openjdk.java.net/projects/jdk9/
JEP 200: The Modular JDKソースコードの再編成(JEP 201)は今年の8月に実施しました。このステップは計画的なものであって、開発者やエンドユーザーには影響はありませんでした。モジュラーランタイムイメージ(JEP 220)に対するほとんどの変更が先週後半に統合され、JDK 9早期アクセス版ビルド41でご利用頂けるようになっています。
http://openjdk.java.net/jeps/200
JEP 201: Modular Source Code
http://openjdk.java.net/jeps/201
JEP 220: Modular Run-Time Images
http://openjdk.java.net/jeps/220
Java Platform Module System JSR (376)
http://openjdk.java.net/projects/jigsaw/spec/
JDK™ 9 Early Access Releasesこのステップはソースコードの再編成とは対照的に、開発者やエンドユーザーにとって大きな影響が及ぶことが想定されます。この作業の詳細はJEP(JEP 220)に記載されていますが、以下に主要な点を書き出しておきます。
9 Build b41
https://jdk9.java.net/download/
- JREとJDKイメージには現在、理想的な構造が存在します。以前はJDKイメージはJREをjreサブディレクトリに埋め込んでいましたが、現在はJDKイメージは、はからずも開発ツールや以前からJDKにあったその他のアイテムの完全なセットを含むシンプルなランタイムイメージです。
- ユーザーが編集可能な構成ファイルは以前libディレクトリにありましたが、これは今後は新たな
conf
ディレクトリにうつります。lib
ディレクトリに残るファイルはランタイムシステムのプライベートな実装の詳細であり、開いたり、変更したりするべきではありません。
- エンドースド・オーバーライド機能(Endorsed Standards Override Mechanism)は削除されました。
Java Endorsed Standards Override Mechanism
この機能を利用しているアプリケーションは、
http://docs.oracle.com/javase/8/docs/technotes/guides/standards/index.htmljava.endorsed.dirs
システムプロパティを設定するか、もしくはjarファイルをJREのlib/endorsed
ディレクトリに配置しなければ動作しません。同様の機能をJDK 9の後期でupgradable modulesとして提供する予定にしています。
Upgradeable modules
http://openjdk.java.net/projects/jigsaw/goals-reqs/03#upgradeable-modules - 拡張機能メカニズム(extension mechanism)は削除されました。
The Extension Mechanism
http://docs.oracle.com/javase/8/docs/technotes/guides/extensions/index.html
この機能を使っているアプリケーションは、java.ext.dirs
システムプロパティを設定するか、もしくは以前拡張としてインストールしたjarファイルをJREのlib/ext
ディレクトリに配置しなければ動作しません。ほとんどの場合、jar
ファイルは拡張として以前インストールされているので、それらをクラスパスの前に単に結構です。 rt.jar
、tools.jar
、dt.jar
という内部ファイルは削除されました。これらのファイルの中身は現在より効率良い形式でlib
ディレクトリのimplementation-privateファイルに格納されています。以前tools.jar
やdt.jar
に入っていたクラスやリソースファイルは、JDKイメージにブートストラップ・クラスローダやアプリケーション・クラスローダを使うと、現在もなお確認することができます。
- 新しい、組み込みNIOファイルシステムプロバイダを使って、ランタイムイメージに格納されているクラスやリソースファイルにアクセスすることができます。以前rt.jarやその他の内部jarファイルを読んでいたツールは直接このファイルシステムを使うようにアップデートすべきです。
既存のアプリケーションをJDK 9 build 41以後で実行したときに障害が発生し、それがこの再編成によるもので、JEP 220にや上記の変更内容にあるものが原因でない、と考える場合には、是非jigsaw-devメーリングリストへ知らせる(まだ購読していない場合には、まず購読してください)か、bugs.java.comからバグレポートを上げてください。どうぞよろしくお願いいたします。
jigsaw-dev -- Technical discussion about Project Jigsaw
http://mail.openjdk.java.net/mailman/listinfo/jigsaw-dev
Java Bug Database
http://bugs.java.com/
0 件のコメント:
コメントを投稿