オプションパッケージのバージョン管理

注: オプションパッケージは、これまで標準拡張機能または単に拡張機能として知られてきたものの新しい名称です。

このセクションでは、次のトピックについて説明します。

概要

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 
この例に含まれる属性について説明します。
Extension-Name
この属性には、Jar ファイル内に格納されているオプションパッケージの名前を指定します。名前は、オプションパッケージを構成するメインパッケージの名前など、固有識別子でなければなりません。
Specification-Vendor
オプションパッケージが準拠している仕様を作成したベンダーを指定します。
Specification-Version
実装が準拠している仕様のバージョン番号を指定します。
Implementation-Vendor-Id
この属性の値は、Jar ファイルに格納されるオプションパッケージの実装を作成したベンダーの固有識別子です。
Implementation-Vendor
この属性の値は、オプションパッケージの実装を作成したベンダーの名前です。この属性は、ユーザーコメントなどの目的だけに使用します。Java Plug-in ソフトウェアでは、オプションパッケージのベンダーを識別するときには使用されません。一意のベンダー識別を割り当てるときには、Implementation-Vendor-Id 属性が使用されます。
Implementation-Version
このオプションパッケージの実装に使用するベンダーのバージョン番号を指定します。

Java 実行環境にインストールされた各オプションパッケージは、これらのマニフェスト属性によって識別されます。Java Plug-in でオプションパッケージを必要とするアプレットが実行されている場合は、これらの属性に基づいて、インストールされているオプションパッケージが、アプレットに指定されているベンダーとバージョンの条件を満たしているかどうかが検査されます。アプレットにこれらの情報を指定するには、以降のセクションで説明するマニフェスト属性を使用します。上記のマニフェスト属性すべてを、オプションパッケージのマニフェストに含める必要があることに留意してください。Plug-in が検索を実行してもオプションパッケージのマニフェスト内にこれらの属性をいずれも検出できない場合、そのオプションパッケージはアプレットに適さないとみなされます。

アプレットの Jar ファイルで使用するマニフェスト属性

次のマニフェストファイルの例には、Jar ファイルにパッケージ化されたアプレットで使用できる属性が含まれます。 (この例は、説明目的にのみ使用するものです。この例に示す URL で実際のオプションパッケージを使用できるわけではありません。)
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 
この例に含まれる属性について説明します。
Extension-List
アプレットに必要なオプションパッケージを指定します。この属性に指定されている各オプションパッケージでは、アプレットに必要なオプションパッケージのバージョンとベンダーを指定するときに、追加属性を使用できます。
<extension>-Extension-Name
オプションパッケージの一意の名前です。Java Plug-in では、インストールされているオプションパッケージのマニフェストの Extension-Name 属性値と比較され、インストールされているオプションパッケージかどうかが検査されます。
<extension>-Specification-Version   (オプション)
アプレットに必要なオプションパッケージ仕様の最小バージョン要件を指定します。Java Plug-in では、インストールされているオプションパッケージの Specification-Version 属性値と比較され、最新のバージョンかどうかが検査されます。
<extension>-Implementation-Version   (オプション)
アプレットに必要なオプションパッケージ実装の最小バージョン番号を指定します。Java Plug-in では、インストールされているオプションパッケージの Implementation-Version 属性値と比較され、新しい実装をダウンロードする必要があるかどうかが検査されます。
<extension>-Implementation-Vendor-Id   (オプション)
アプレットに特定のベンダーの実装が必要な場合は、この属性を使ってオプションパッケージ実装のベンダーを識別できます。Java Plug-in では、インストールされているオプションパッケージの Implementation-Vendor-Id 属性値と比較されます。
<extension>-Implementation-URL
必要なバージョンのオプションパッケージがインストールされていない場合に、最新バージョンのオプションパッケージの取得に使用される URL を指定します。

Java Plug-in 更新規則

Java Plug-in によってアプレットがロードされたときに、そのマニフェストにいくつかのオプションパッケージが指定されている場合は、次の属性が検査されます。

アプレットのマニフェストに 1 つまたは複数のオプション属性が含まれない場合、Plug-in はオプションパッケージのマニフェスト内の対応する任意の属性値を適用します。

オプションパッケージのダウンロードおよびインストール

Java 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 システムプロパティーによって定義されます。

Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.