オプションパッケージのバージョン管理 |
オプションパッケージドキュメント |
注: オプションパッケージは、これまで「標準拡張機能」または単に「拡張機能」として知られてきたものの新しい名称です。JavaTM 2 プラットフォームのバージョン 1.3 では、Jar ファイルのマニフェスト属性が拡張されており、アプレットに必要なオプションパッケージのバージョンとベンダー情報を指定できるようになりました。Jar パッケージによるアプレットのマニフェストで指定された URL で、Java Plug-in は、次の場合に最新バージョンのオプションパッケージをダウンロードできます。
- 必要なオプションパッケージが、Java Runtime Environment にインストールされていない
- オプションパッケージがインストールされているが、バージョン番号が古い
- オプションパッケージがインストールされているが、指定されたベンダーから提供されたものではない
ここでは、バージョンとベンダー情報を指定するときに使用するマニフェスト属性について説明します。
次のマニフェストファイルの例には、オプションパッケージで使用できる属性が含まれます。この例に含まれる属性について説明します。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 ファイルにパッケージ化されたアプレットで使用できる属性が含まれます。この例は、説明目的にのみ使用するものです。この例に示す 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://java.sun.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://java.sun.com/products/stdext/java3d.jarJava Plug-in によってアプレットがロードされたときに、そのマニフェストにいくつかのオプションパッケージが指定されている場合は、次の属性が検査されます。
- 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 を指定します。
- 正しい Extension-Name 属性値を持つオプションパッケージがインストールされていない場合は、オプションパッケージのダウンロードを要求するプロンプトを表示する
- インストールされているオプションパッケージの Extension-Name 属性の値が正しい場合は、次の属性を比較する
- オプションパッケージの Specification-Version 値がアプレットの要件以上の場合
- Implementation-Vendor-Id 属性が一致している場合
- オプションパッケージの Implementation-Version がアプレットのマニフェストに指定されているバージョン以上の場合は、何も行わない - 適切なバージョンのオプションパッケージがすでにインストールされている
- オプションパッケージの Implementation-Version がアプレットのマニフェストに指定されているバージョン未満の場合は、そのベンダーからアップグレードをダウンロードするように要求するプロンプトを表示する
- Implementation-Vendor-Id 属性が一致しない場合は、アプレットのマニフェストに指定されているベンダーのオプションパッケージをダウンロードするように要求するプロンプトを表示する
- オプションパッケージの Specification-Version 値がアプレットのバージョン要件未満の場合
- オプションパッケージの Implementation-Vendor-Id がアプレットのマニフェストに指定されているベンダー ID と一致する場合は、そのベンダーから更新済みのオプションパッケージをダウンロードするように要求するプロンプトを表示する
- オプションパッケージの Implementation-Vendor-Id がアプレットのマニフェストに指定されているベンダー ID と一致しない場合は、アプレットのマニフェストに指定されているベンダーから、オプションパッケージをダウンロードするように要求するプロンプトを表示する
アプレットのマニフェストに 1 つまたは複数のオプション属性が含まれない場合、Plug-in はオプションパッケージのマニフェスト内の対応する任意の属性値を適用します。
Java Plug-in を使用してオプションパッケージをダウンロードする場合は、次の点に注意してください。オプションパッケージをダウンロードする URL は、アプレットのマニフェスト属性 <extension>-Implementation-URL に指定するときに、アプレットのコードベースである必要はありません。
ダウンロードするファイルは、すべて DSA または RSA 証明書による署名が必要です。署名されていないオプションパッケージは、インストールされません。バンドル型オプションパッケージとみなされ、アプレットのセキュリティ属性が共有されて、アプレットのクラスローダによってロードされます。
Java Plug-in では、アプレットのマニフェストに指定されている URL からオプションパッケージを取得するときに、オプションパッケージの署名が検証されてから、オプションパッケージのマニフェストの Main-Class 属性が検査されます。オプションパッケージのマニフェストファイルに Main-Class 属性が含まれていない場合は、Java Plug-in によって実行環境のオプションパッケージのディレクトリ (Java 2 SDK の jre/lib/ext および Java 2 Runtime Environment の lib/ext) に Jar ファイルが格納されます。
オプションパッケージの Jar ファイルには、ネイティブコードで、または Java プログラミング言語で記述されたアプリケーションとして、独自のインストーラプログラムが格納されていることがあります。ネイティブライブラリをインストールしたり、Win32 レジストリにアクセスしたりする場合は、独自のインストーラプログラムが必要なことがあります。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)$ 構造を使用して処理します。次に例を示します。
ここで、$(os-name)$ はターゲットのオペレーティングシステムの名前で、os.name システムプロパティによって定義されます。javaExt-Implementation-URL: http://.../stdext/javaExt-$(os-name)$.jar
Copyright © 1999 Sun Microsystems, Inc.All Rights Reserved. | Java ソフトウェア |