Java 拡張機能の配備


注: Java 拡張機能は、「オプションパッケージ」、「標準拡張機能」、または単に「拡張機能」とも呼ばれます。

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

Java アプレットは、Java 拡張機能を使用してユーザに追加の機能を提供します。アプレットは Java Plug-in を使って、さまざまな Java 拡張機能 (JavaHelp、Java 3D、Java Media Framework など) の Java 2 Runtime Environment へのインストールをトリガできます。このドキュメントでは、Java Plug-in で「インストール型 Java 拡張機能」(「バンドル型 Java 拡張機能」に相対するもの) を配備する基本的な手順を示します。Java 拡張機能の稼動方法の詳細は、「Java 拡張機能機構」を参照してください。

概要

拡張機能を使用するアプレットは、マニフェストを含む署名付きの JAR ファイルとしてパッケージ化されます。Java Plug-in は、アプレットをダウンロードして実行するときに、アプレット JAR ファイルのマニフェストをチェックします。マニフェストには、アプレットに必要な拡張機能の一覧が含まれています。個々の拡張機能は 1 つ以上の JAR ファイルで構成され、これらのファイルは <jre>/lib/ext ディレクトリにインストールされます。

通常、アプレットのマニフェストには、拡張機能ごとに拡張機能 JAR ファイルの名前、ベンダー、およびバージョン情報の一覧が含まれています。また、JAR ファイルが <jre>/lib/ext にインストールされていない場合や、古くなっている場合のために、JAR ファイルまたはそのインストールプログラムを取得できる URL の一覧も含まれています。URL では、拡張機能 JAR ファイルの 1 つを直接指定することも、一連の拡張機能 JAR ファイルをインストールするインストールプログラム (ネイティブまたは Java) を指定することもできます。更新が必要かどうかを判断する規則については、「オプションパッケージのバージョン管理」で説明します。

Java Plug-in を使って Java 拡張機能を配備するには、拡張機能に関する情報を次の 3 つのマニフェストファイルに指定する必要があります。

  1. アプレット JAR ファイルのマニフェスト

  2. 各拡張機能 JAR ファイルのマニフェスト

  3. Implementation-URL JAR ファイルのマニフェスト

これらの各マニフェストファイルについて、以下に詳しく説明します。

アプレット JAR ファイルのマニフェスト

アプレットに Java 拡張機能を配備するには、アプレットを JAR ファイルとしてパッケージ化する必要があります。また、アプレット JAR ファイルのマニフェストファイルには、必要な拡張機能の一覧、拡張機能をダウンロードできる URL、および拡張機能に関するその他の情報を、「オプションパッケージのバージョン管理」に従って指定する必要があります。次の例は、2 つの拡張機能がある場合のマニフェストファイルです。

Extension-List:RectangleArea RectanglePerimeter
RectangleArea-Extension-Name:com.mycompany.RectangleArea
RectangleArea-Specification-Version: 1.2
RectangleArea-Implementation-Version: 1.2
RectangleArea-Implementation-Vendor-Id:com.mycompany
RectangleArea-Implementation-URL:http://mycompany.com/RectangleArea.jar
RectanglePerimeter-Extension-Name:com.mycompany.RectanglePerimeter
RectanglePerimeter-Specification-Version: 1.2
RectanglePerimeter-Implementation-Version: 1.2
RectanglePerimeter-Implementation-Vendor-Id:com.mycompany
RectanglePerimeter-Implementation-URL:http://mycompany.com/RectanglePerimeter.jar

この例では、アプレットに 2 つの拡張機能 RectangleArea および RectanglePerimeter が配備されます。それぞれが 1 つの JAR ファイルを持っています。これらがインストールされていないか、更新されたバージョンが必要な場合、指定した Implementation-URL から適切なバージョンがダウンロードされます。Implementation-URL は、次のような JAR ファイルを指定している必要があります。

これについては、後述のImplementation-URL JAR ファイルのマニフェスト」で詳しく説明します。

Extension-List の名前と属性の接頭辞

基本的なシナリオは 2 つあります。拡張機能が単一の JAR ファイルを持つ場合と、複数の JAR ファイルを持つ場合です。Extension-List の名前と属性の接頭辞について、これら 2 つのシナリオで説明します。

単一の JAR ファイルを持つ拡張機能

上記の例のように、単一の JAR ファイルを持つ拡張機能の場合、Extension-List の名前と、関連するマニフェスト属性の接頭辞は、拡張機能 JAR ファイルの名前になります。

複数の JAR ファイルを持つ拡張機能

拡張機能が複数の JAR ファイルで構成されることもあります。たとえば、Java 3D 拡張機能は、JAR ファイル j3daudio.jarj3dcore.jarj3dutils.jar、および vecmath.jar で構成されています。ここでは、2 つのシナリオを考慮する必要があります。ネイティブインストールプログラムまたは Java インストールプログラムで JAR ファイルをインストールする場合と、インストールプログラムは使用せずに raw インストールによって拡張機能 JAR ファイルをインストールする場合です。

ネイティブインストールプログラムまたは Java インストールプログラムを使用する場合は、Extension-List に JAR ファイルの名前を 1 つだけ指定する必要があります。また、その名前を接頭辞として、属性を 1 セットだけ指定できます。通常、拡張機能にはメインの JAR ファイルが 1 つあります。この場合は、その名前を Extension-List に指定し、関連するマニフェスト属性の接頭辞としても使用します。メインの JAR ファイルがない場合は、オプションパッケージにある任意の JAR ファイルの名前を使用できます。

次の例は、Java 3D 拡張機能のアプレットのマニフェストです。j3dcore.jar はメインの JAR ファイルです。

Extension-List:j3dcore
j3dcore-Extension-Name:javax.media.j3d

j3dcore-Specification-Version:1.2
j3dcore-Specification-Vendor:Sun Microsystems, Inc
j3dcore-Implementation-Version:1.2.1_03
j3dcore-Implementation-Vendor-Id:com.sun
j3dcore-Implementation-URL:http://<myserver>/native/java3d-win.jar

複数の JAR ファイルがある場合、raw インストールの手順は次のように変わります。個々の JAR ファイルを個別の拡張機能であるかのように扱い、各ファイルの名前を Extension-List に指定します。指定した JAR ファイルごとに、それぞれマニフェスト属性のセットを指定します。このとき、属性の接頭辞として、各 JAR ファイルの名前を使用します。

JAR 拡張機能の識別に関する注意事項

インストールされた拡張機能 JAR ファイルについて、Java Plug-in は以下の 4 つのマニフェスト属性をチェックします。

  • Extension-Name
  • Specification-Version
  • Implementation-Version
  • Implementation-Vendor-Id

Extension-NameImplementation-Vendor-Id は、アプレットのマニフェストファイルで指定された値と正確に一致しなければなりません。

各拡張機能 JAR ファイルのマニフェスト

ここでは、Implemenation-URL に指定された URL から Plug-in で取得できる JAR ファイルについて説明します。URL から取得可能な拡張機能 JAR ファイルは、直接取得するか (raw インストール)、Java インストールプログラムまたはネイティブインストールプログラムを通して取得することができます。どちらの場合も、JAR ファイルは <jre>/lib/ext にインストールされます。

アプレットに必要な拡張機能の一覧は、アプレットのマニフェストに指定されています。これにより、アプレットの起動時に Plug-in は <jre>/lib/ext ディレクトリにある JAR ファイルを調べ、不足している拡張機能や古くなった拡張機能をインストールする必要があるかどうかを判断できます。

通常、Implementation-URL を通して取得される拡張機能 JAR ファイルのマニフェストには、各種の名前、バージョン、およびベンダー情報が含まれています。このような拡張機能 JAR ファイルがインストールされると、Java Plug-in はあとでこの情報を、アプレットに必要な拡張機能に関する情報と比較できます。したがって、拡張機能のインストールやアップグレードが必要かどうかを判断できます。アプレットが拡張機能を要求する前は、<jre>/lib/ext に拡張機能がまったくインストールされていないか、インストールされた拡張機能 JAR ファイルにマニフェスト情報がまったくない、あるいは不完全なマニフェスト情報しかない場合が多いでしょう。

単一の JAR ファイルを持つ拡張機能の場合、その JAR ファイルに署名が付いていることと、次の属性を持つマニフェストファイルが含まれていることが必要です。

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.1.3

Java 拡張機能が複数の JAR ファイルで構成され、ネイティブインストールプログラムまたは Java インストールプログラムによってインストールされる場合は、アプレットマニフェストの Extension-List に指定されている JAR ファイルだけに、拡張機能の情報 (Extension-NameSpecification-Version など) を指定します。インストールプログラムを使用しない場合は、すべての JAR ファイルに拡張機能の情報を含める必要があります。

これらの属性の詳細は、「オプションパッケージのバージョン管理」を参照してください。

Implementation-URL JAR ファイルのマニフェスト

これは、アプレットがマニフェスト内の Implementation-URL 属性を使って参照する JAR ファイルです。<jre>/lib/ext に拡張機能がまったくインストールされていない場合や、インストールされている拡張機能が古い場合は、この URL から拡張機能を取得できます。

Implementation-URL JAR ファイルがネイティブインストールプログラムまたは Java インストールプログラムである場合は、次の 2 つの特別な属性で示されます。Main-Class は Java インストールプログラムを示し、Extension-Installation はネイティブインストールプログラムを示します。インストールプログラムが指定されていない場合、Implementation-URL JAR ファイルは拡張機能 JAR ファイルそのものです。

したがって、Java Plug-in では、次の 3 通りの方法で拡張機能をインストールできます。

各方法について、次に説明します。

raw インストール

拡張機能の raw インストールでは、個々の拡張機能 JAR ファイルが Java Plug-in によって <jre>/lib/ext ディレクトリにインストールされます。Java やネイティブのインストールプログラムは使用されず、Java Plug-in が各 JAR ファイルの「インストールプログラム」として機能します。単一の JAR ファイルを持つ拡張機能の場合、その JAR ファイルの URL が Implementation-URL としてアプレットの JAR マニフェストに示されます。Java Plug-in は、拡張機能 JAR ファイルのマニフェストに Main-Class 属性も Extension-Installation 属性も含まれていないことから、raw インストールであると認識できます。

ここでは、javax.mediax という拡張機能が、単一の JAR ファイル mediax.jar で構成されているとします。アプレットおよび拡張機能の JAR ファイルは次のようになります。

例:アプレットの JAR マニフェスト

Extension-List: mediax
mediaz-Extension-Name: javax.mediax
mediax-Specification-Version: 1.1
mediax-Implementation-Version: 1.1.2
mediax-Implementation-Vendor-Id: com.sun
mediax-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/media/mediax.jar

例:拡張機能の JAR マニフェスト

Extension-Name: javax.mediax
Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.2

2 つの JAR ファイル mediax_core.jarmediax_codex.jar を持つ別のバージョンの拡張機能 javax.mediax-2 があるとします。この場合、2 つの JAR ファイルを個別の拡張機能であるかのように扱い、アプレットの JAR マニフェストに各ファイルを指定する必要があります。

例:アプレットの JAR マニフェスト

Extension-List: mediax_core mediax_codec
mediax_core-Extension-Name: javax.mediax_core
mediax_core-Specification-Version: 1.1
mediax_core-Implementation-Version: 1.1.2
mediax_core-Implementation-Vendor-Id: com.sun
mediax_core-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/media/mediax_core.jar mediax_codec-Extension-Name: javax.mediax_codec
mediax_codec-Specification-Version: 1.1
mediax_codec-Implementation-Version: 1.1.2
mediax_codec-Implementation-Vendor-Id: com.sun
mediax_codec-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/media/mediax_codec.jar

例: 拡張機能の JAR マニフェスト

Extension-Name: javax.mediax_core
Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.2
Extension-Name: javax.mediax_codec
Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.2

Java インストールプログラム

Java インストールプログラムを通して拡張機能をインストールすることもできます。Java インストールプログラムは、JAR ファイルとしてバンドルする必要があります。また、生成された JAR ファイルを、アプレットの JAR マニフェストファイルの Implementation-URL に指定する必要があります。インストール時に、JAR ファイルのダウンロードおよび検証が行われます。その後、JAR ファイル内の Java インストールプログラムの Main-Class が実行されて、インストールプログラムが起動します。Java インストールプログラムによって、インストールプログラムにバンドルされている拡張機能 JAR ファイルが Java 2 Runtime の適切な場所 (<jre>/lib/ext) にコピーされます。

これはアプリケーションの JAR ファイルですが、そのマニフェスト内の属性は、アプレットマニフェストの Extension-List に指定されている拡張機能 JAR ファイルの属性と同じになります。ただし、Main-Class 属性が追加されます。

例:Java インストールプログラムの JAR マニフェスト

Extension-Name:javax.help
Specification-Vendor:Sun Microsystems, Inc
Specification-Version: 1.1 
Implementation-Vendor-Id:com.sun
Implementation-Vendor:Sun Microsystems, Inc
Implementation-Version: 1.1.3
Main-Class:com.sun.javahelp.installer
この場合、マニフェストに Main-Class が存在するため、JAR ファイルは Java インストールプログラムとして扱われ、Main-class が呼び出されます。Java インストールプログラムによって、拡張機能 JAR ファイルが <jre>/lib/ext ディレクトリにコピーされます。拡張機能の個々の JAR ファイルに、適切なバージョン情報が含まれている必要があります。

ネイティブインストールプログラム

ネイティブインストールプログラムを通して拡張機能をインストールすることもできます。ネイティブインストールプログラムは、JAR ファイルとしてバンドルする必要があります。また、生成された JAR ファイルを、アプレットの JAR マニフェストファイルの Implementation-URL に指定する必要があります。インストール時に JAR ファイルのダウンロードおよび検証が行われ、次にネイティブインストールプログラムが起動します。ネイティブインストールプログラムによって、インストールプログラムにバンドルされている拡張機能 JAR ファイルが Java 2 Runtime の適切な場所 (<jre>/lib/ext) にコピーされます。

これはアプリケーションの JAR ファイルですが、そのマニフェスト内の属性は、アプレットマニフェストの Extension-List に指定されている拡張機能 JAR ファイルの属性と同じになります。ただし、Extension-Installation 属性が追加されます。

例: ネイティブインストールプログラムの JAR マニフェスト

Extension-Name:javax.media.jmf
Specification-Vendor:Sun Microsystems, Inc
Specification-Version: 2.1 
Implementation-Vendor-Id:com.sun
Implementation-Vendor:Sun Microsystems, Inc
Implementation-Version:2.1.1
Extension-Installation:jmf-2_1_1-win.exe

この場合、マニフェストに Extension-Installation が存在するため、JAR ファイルはネイティブインストールプログラムとして扱われ、インストールプログラム自体が起動します。ネイティブインストールプログラムによって、Java 拡張機能が <jre>/lib/ext ディレクトリにコピーされます。Java 拡張機能の個々の JAR ファイルに、適切なバージョン情報が含まれている必要があります。

セキュリティ

インストールされている拡張機能を更新する必要がある場合、その拡張機能のダウンロードおよび検証が行われて、拡張機能が適正に署名されていることが確認されます。有効な場合、Plug-in によりセキュリティダイアログがポップアップし、次の 3 つのオプションが提供されます。

  1. [Grant always]: このオプションを選択すると、Implementation-URL JAR ファイルに AllPermission が付与されます。以後、同じ証明書を使用して署名されたアプレットや拡張機能は、すべて自動的に信頼されます。この証明書に再度遭遇した場合、セキュリティダイアログは表示されません。この決定は、Java Plug-in コントロールパネルで変更できます。
  2. [Grant this session]: このオプションを選択すると、Implementation-URL JAR ファイルに AllPermission が付与されます。同じ証明書を使用して署名されたアプレットや拡張機能はすべて、同じブラウザセッション内で自動的に信頼されます。
  3. [Deny]: このオプションを選択すると、インストールが取り消されます。

ユーザがセキュリティダイアログでオプションを選択すると、対応するセキュリティコンテキスト内で、拡張機能インストールが実行されます。拡張機能が正しくインストールされないかぎり、アプレットは起動できません。

Java 拡張機能は Java 2 Runtime の <jre>/lib/ext ディレクトリにダウンロードおよびインストールされるため、それぞれ署名されていることが必要です。拡張機能のインストール後に、ポリシーファイルを介して Java 拡張機能に適切なアクセス権が付与されます。

詳細な手順

Java Plug-in とともに使用する拡張機能を設定するには、次の手順に従ってください。

I. アプレットに必要な拡張機能を作成/取得する

各拡張機能は 1 つ以上の JAR ファイルで構成されます。各 JAR ファイルには、バージョン情報の入ったマニフェストファイルが含まれていることと (「各拡張機能 JAR ファイルのマニフェスト」を参照)、署名が付いていることが必要です。(ネイティブまたは Java のインストールプログラムによって複数の JAR ファイルをインストールする場合の例外)

一連のファイルから JAR ファイルを作成するには、次のコマンドを使用します。

% jar cmf my_manifest my_jar input_files

jar ツールの詳細については、プラットフォームに応じた『JDK ツールとユーティリティ』ドキュメントを参照してください。

JAR ファイルに署名する手順は多少複雑になります。手順の概要は次のとおりです。

  1. keytool -genkey オプションを使って鍵ペアを生成します。
  2. keytool -certreq を使って、認証局 (CA) に対する証明書要求を生成します。認証局には、VeriSignThawte などがあります。この要求を CA に電子メールで送ります。CA は、要求者の身分情報を確認したあと、証明連鎖を電子メールで返送します。この証明連鎖をファイルにコピーします。
  3. keytool -import オプションを使用して、連鎖をキーストア内にインポートします。
  4. jarsigner ツールを使って JAR ファイルに署名し、署名されたことを -verify オプションで確認します。

keytooljarsigner の詳細については、プラットフォームに応じた『JDK ツールとユーティリティ』ドキュメントを参照してください。

このトピックの詳細と例については、「RSA 署名付き証明書を使用したアプレットの署名方法」の章を参照してください。その章ではアプレットの JAR ファイルに署名する手順が説明されていますが、拡張機能の JAR ファイルに署名する手順も同じです。

II. Implementation-URL JAR ファイルを作成/取得する

インストールプログラムを使用しない場合

手順 I で説明した拡張機能 JAR ファイルが Implementation-URL JAR ファイルです。

インストールプログラムを使用する場合

  1. インストールプログラムを作成または取得します。
  2. インストールプログラムの JAR ファイルおよびそれにバンドルする拡張機能について、マニフェストを作成します。
    • Java インストールプログラムの場合は、マニフェストに Main-Class 属性を含めます。
    • ネイティブインストールプログラムの場合は、Extension-Installation 属性を含めます。
  3. インストールプログラム、マニフェスト、および必要な拡張機能をバンドルして JAR ファイルを作成し、その JAR ファイルに署名します。JAR ファイルの作成と署名の手順は、上記の手順 I と同じです。

ここでは、アプレットで Sun の Java Advanced Imaging を拡張機能としてインストールする必要があるとします。これは次の場所からダウンロードできます。

http://java.sun.com/products/java-media/jai/downloads/download.html

「Windows JRE Install」バージョンを選択するとします。次のファイルがダウンロードされます。

jai-1_1_1_01-lib-windows-i586-jre.exe

このインストールプログラムには、次の JAR ファイルがバンドルされており、インストールプログラムによって <jre>/lib/ext ディレクトリにインストールされます。

上記の .exe インストールプログラムが入った JAR ファイルのマニフェストを作成し、JAR ファイルに署名します。

マニフェストは次のようになります。

Extension-Name:javax.media.jai 
Specification-Vendor:Sun Microsystems, Inc
Specification-Version: 1.1 
Implementation-Vendor-Id:com.sun
Implementation-Vendor:Sun Microsystems, Inc
Implementation-Version: 1.1.1_01
Extension-Installation:jai-1_1_1-01-windows-i586-jre.exe

インストールプログラムとマニフェストファイルを、jai_win.jar という JAR ファイルにまとめます。拡張機能 JAR ファイルを含める必要はありません。この例では、これらのファイルは .exe インストールプログラムにバンドルされているためです。JAR ファイルの名前には必ず拡張子 .jar を付けてください。

jai_win.jar に署名します。

III. アプレット JAR ファイルを作成する

1. アプレットのマニフェストファイルを作成します。次の例は、ネイティブインストールプログラムを使用する jai のマニフェストファイルです。

Extension-List:jai_core
jai_core-Extension-Name:javax.media.jai
jai_core-Specification-Version:1.1
jai_core-Implementation-Version:1.1.1_01
jai_core-Implementation-Vendor-Id:com.sun
jai_core-Implementation-URL:http://myserver.com/jai_win.jar

オプションパッケージの中には、オぺレーティングシステムごとに異なる JAR ファイル内にパッケージされるものもあります。アプレットを異なる OS 上で動作させるには、Implementation-URL マニフェスト属性で $(os-name)$ 構造を使用します。$(os-name)$ は、アプレットが実行されるターゲット OS (例: SunOS、Linux、Windows-98、Windows-NT、Windows-2000、Windows-Me) に変換されます。

optpkg-Implementation-URL:http://.../optpkg-$(os-name)$.jar

2. *.class ファイル、アプレットに必要なその他のサポートファイル、およびアプレットのマニフェストファイルを JAR ファイルにまとめ、JAR ファイルに署名します。JAR ファイルの作成と署名の手順は、前述の手順と同じです。JAR ファイルの名前には必ず拡張子 .jar を付けてください。

IV. アプレットの起動用 HTML を作成する

アプレットの HTML ページを作成します。手動で作成するか、JDK に付属している HtmlConverter を使って作成できます。HtmlConverter を使用することをお勧めします。手動で作成する場合は、手順について「Java Plug-in での OBJECTEMBED、および APPLET タグの使用」を参照してください。アプレット JAR ファイルは、archive 属性の中に指定する必要があります。

アプレットの名前が JaiApplet、作成したアプレット JAR ファイルの名前が JaiApplet.jar、メインクラスが JaiApplet.class であるとします。

元のアプレットは次のようなものであるとします。

<html>
<head>
<title>JaiApplet</title>
</head>
<body>
<APPLET code="JaiApplet.class" archive="JaiApplet.jar" align="absmiddle" WIDTH="400"HEIGHT="300"> </APPLET>
</body>
</html>

動的バージョン管理のために HtmlConverter を使ってこれを変換すると、次のようになります。

<html>
<head>
<title>JaiApplet</title>
</head>
<body>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<OBJECT
classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase = "http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"
WIDTH = "400" HEIGHT = "300" ALIGN = "absmiddle" >
<PARAM NAME = CODE VALUE = "JaiApplet.class" >
<PARAM NAME = ARCHIVE VALUE = "JaiApplet.jar" >
<PARAM NAME = "type" VALUE = "application/x-java-applet;version=1.4">
<PARAM NAME = "scriptable" VALUE = "false">
<COMMENT>
<EMBED
type = "application/x-java-applet;version=1.4"
CODE = "JaiApplet.class"
ARCHIVE = "JaiApplet.jar"
WIDTH = "400"
HEIGHT = "300"
ALIGN = "absmiddle"
scriptable = false
pluginspage = "http://java.sun.com/products/plugin/index.html#download">
<NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
<!--
<APPLET CODE = "JaiApplet.class" ARCHIVE = "JaiApplet.jar" WIDTH = "400" HEIGHT = "300" ALIGN = "absmiddle">
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>

拡張機能がインストールされていない場合は、アプレットの実行時に Java Plug-in によって Java Security Warning が表示され、アプレットが http://myserver.com/jai_win.jar からの拡張機能 javax.media.jai のインストールを必要としていることが通知されます。拡張機能をインストールするアクセス権が付与されている場合は、インストールプログラムによって JAR ファイルが <jre>/lib/ext ディレクトリにインストールされます。インストールが完了したらアプレットを実行できます。

Java Media Framework を Java 拡張機能として配備する場合の、実際に動作する完全な例についは、付録 5「完全な例 — Java 拡張機能としての Java Media Framework の配備」を参照してください。

既知の制限とその他の注意