Excelsiorは23日(ロシア時間)、Excelsior JETの最新版となる「Excelsior JET 5.0」を公開した。Excelsior JETは、Java SE 5.0対応のJavaアプリケーションをネイティブアプリケーションに変換するプロダクト。ネイティブアプリケーションに変換することで、サイズの縮小、アプリケーションの高速化、難読化などを実現できる。5.0における特徴は、Java互換を保ちながらもJava SE実行環境のサイズを削減することに成功した点にある。

Javaアプリケーションを配布する場合、実行環境であるJava SE実行環境(以降、JRE)を添付したいことがある。しかし、JREはAPIをすべて含んでいるため、ある程度サイズが大きい。そこで、Excelsior JET 5.0では、JREからアプリケーションが使っていないAPIをとりのぞき、サイズを縮小したJREを添付できるようにしている。しかも実行時にオンデマンドでダウンロードを実施することで、完全にJava互換性も実現している点が特徴だ。

Javaの強みのひとつはその豊富なAPI群にあるが、すべてのアプリケーションがJava APIのすべての機能を使っているとはかぎらない。たとえば、サーバアプリケーションであればSwing/AWTといったAPIを使うことは稀だろう。フォントやネイティブメソッドといったリソースへのアクセスもほぼないと言える。

Javaアプリケーションと実行環境をバンドルして提供する場合、どうしてもこれらを使わないAPIも梱包する必要があった。Excelsior JET 5.0ではこうした使っていないAPIを同梱しない機能が提供されたことで、配布するアプリケーションサイズの大幅な小サイズ化が実現できるようになった。

インストールパッケージからはずされたAPIはコンパイル時に別途まとめられるため、同配布物をパッケージ作成時に指定したURLに置いておけばよい。それらAPIが必要になった場合には指定されたURLからAPIをダウンロードして使うかたちになる。こうした仕組みを提供することで、小サイズ化を実現しつつも、Javaとの互換性を確保している。