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

非推奨: すべてのアプリケーションで使用できるオプション・パッケージをダウンロードしてインストールするためのインストール型オプション・パッケージのマニフェスト属性およびJava Plug-inサポートは非推奨になりました。今後のリリースで削除される可能性があります。

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

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

概要

Java SE 1.3では、Jarファイルのマニフェスト属性が拡張されており、アプレットに必要なオプション・パッケージのバージョンとベンダー情報を指定できるようになりました。Jarパッケージによるアプレットのマニフェストで指定されたURLで、Java Plug-inは、次の場合に最新バージョンのオプション・パッケージをダウンロードできます

ここでは、バージョンとベンダー情報を指定するときに使用するマニフェスト属性について説明します。

インストール型オプション・パッケージで使用するマニフェスト属性

次のマニフェスト・ファイルの例には、オプション・パッケージで使用できる属性が含まれます。
Extension-Name: javax.help
Specification-Vendor: Oracle Corporation 
Specification-Version: 1.0 
Implementation-Vendor-Id: com.sun 
Implementation-Vendor: Oracle, 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: example.com 
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: example.com 
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, 2020, Oracle and/or its affiliates. All rights reserved.