注: オプションパッケージは、これまで標準拡張機能または単に拡張機能として知られてきたものの新しい名称です。
このセクションでは、次のトピックについて説明します。
JavaTM 2 プラットフォームのバージョン 1.3 では、Jar ファイルのマニフェスト属性が拡張されており、アプレットに必要なオプションパッケージのバージョンとベンダー情報を指定できるようになりました。Jar パッケージによるアプレットのマニフェストで指定された URL で、Java Plug-in は、次の場合に最新バージョンのオプションパッケージをダウンロードできます
ここでは、バージョンとベンダー情報を指定するときに使用するマニフェスト属性について説明します。
Extension-Name: javax.help Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.0 Implementation-Vendor-Id: com.sun Implementation-Vendor: Sun Microsystems, Inc Implementation-Version: 1.0この例に含まれる属性について説明します。
Java 実行環境にインストールされた各オプションパッケージは、これらのマニフェスト属性によって識別されます。Java Plug-in でオプションパッケージを必要とするアプレットが実行されている場合は、これらの属性に基づいて、インストールされているオプションパッケージが、アプレットに指定されているベンダーとバージョンの条件を満たしているかどうかが検査されます。アプレットにこれらの情報を指定するには、以降のセクションで説明するマニフェスト属性を使用します。上記のマニフェスト属性すべてを、オプションパッケージのマニフェストに含める必要があることに留意してください。Plug-in が検索を実行してもオプションパッケージのマニフェスト内にこれらの属性をいずれも検出できない場合、そのオプションパッケージはアプレットに適さないとみなされます。
Extension-List: javahelp java3d javahelp-Extension-Name: javax.help javahelp-Specification-Version: 1.0 javahelp-Implementation-Version: 1.0.3 javahelp-Implementation-Vendor-Id: com.sun javahelp-Implementation-URL: http://www.example.com/products/stdext/javahelp.jar java3d-Extension-Name: javax.3d java3d-Specification-Version: 1.0 java3d-Implementation-Version: 1.2.1 java3d-Implementation-Vendor-Id: com.sun java3d-Implementation-URL: http://www.example.com/products/stdext/java3d.jarこの例に含まれる属性について説明します。
Java Plug-in によってアプレットがロードされたときに、そのマニフェストにいくつかのオプションパッケージが指定されている場合は、次の属性が検査されます。
アプレットのマニフェストに 1 つまたは複数のオプション属性が含まれない場合、Plug-in はオプションパッケージのマニフェスト内の対応する任意の属性値を適用します。
オプションパッケージをダウンロードする URL は、アプレットのマニフェスト属性 <extension>-Implementation-URL に指定するときに、アプレットのコードベースである必要はありません。
ダウンロードするファイルは、すべて DSA または RSA 証明書による署名が必要です。署名されていないオプションパッケージは、インストールされません。バンドル型オプションパッケージとみなされ、アプレットのセキュリティー属性が共有されて、アプレットのクラスローダーによってロードされます。
Java Plug-in では、アプレットのマニフェストに指定されている URL からオプションパッケージを取得するときに、オプションパッケージの署名が検証されてから、オプションパッケージのマニフェストの Main-Class 属性が検査されます。オプションパッケージのマニフェストファイルに Main-Class 属性が含まれていない場合は、Java Plug-in によって実行環境のオプションパッケージのディレクトリ (JDK の jre/lib/ext および JRE の lib/ext) に Jar ファイルが格納されます。
オプションパッケージの Jar ファイルには、ネイティブコードで、または Java プログラミング言語で記述されたアプリケーションとして、独自のインストーラプログラムが格納されていることがあります。ネイティブライブラリをインストールしたり、Microsoft Windows レジストリにアクセスしたりする場合は、独自のインストーラプログラムが必要なことがあります。Java Plug-in によってオプションパッケージのマニフェスト内に Main-Class 属性が検出された場合は、Java 言語のインストーラとして機能するクラスが指定されているとみなされ、そのクラスの main() メソッドが呼び出されます。
オプションパッケージのマニフェストには、Extension-Installation 属性が指定されていることもあります。このフィールドの値は、Java Plug-in によってオプションパッケージがインストールされるときに使用される、ネイティブインストールアプリケーションを指しています。
<extension>-Implementation-URL により指定されるオプションパッケージの URL は、JAR ファイルを指し示す必要があります。Plug-in が、.exe または .bin ファイルとしてパッケージされたオプションパッケージをダウンロードおよびインストールすることはありません。
オプションパッケージの中には、オぺレーティングシステムごとに異なる Jar ファイル内にパッケージされるものもあります。そのような場合、<extension>-Implementation-URL 属性が、属性値内で $(os-name)$ 構造を使用して処理します。次に例を示します。
javaExt-Implementation-URL: http://.../stdext/javaExt-$(os-name)$.jarここで、$(os-name)$ はターゲットのオペレーティングシステムの名前で、os.name システムプロパティーによって定義されます。