注:この Java Plug-in ガイドでは、Java SE 6 update 10 リリースより前にリリースされた機能について説明します。最新情報については、Java Rich Internet Application の開発および配備を参照してください。

< 目次

付録 3: 完全な例: Java 拡張機能としての Java Media Framework の配備

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

はじめに

ここでは、Java Media Framework (JMF) の単一の JAR ファイルを Java 拡張機能として配備する場合の、実際に動作する完全な例を示します。この例では、SimplePlayerApplet.javajmf.jar を使って .avi メディアファイルを再生します。この例では、raw インストール方法を使って s_my_jmf.jar というファイルをインストールします。これは、jmf.jar を再パッケージ化して署名したものです。通常、ほかの JAR ファイルも JMF とともにインストールされますが、SimplePlayerApplet.java に必要なのは jmf.jar の機能だけです。

簡単にするために、この例では次のように仮定しています。

インストールする JAR ファイルを作成する

この場合、インストーラはありません。必要な JAR ファイル jmf.jar をダウンロードし、<jre_location>/lib/ext にコピーするだけで済みます。Plug-in と JRE の拡張機能メカニズムの連携によって、インストール処理 (ファイルのダウンロードとコピー) が行われます。

クロスプラットフォームインストール用の zip ファイル jmf-2_1_1e-alljava.zipJava Media Framework API からダウンロードすることによって jmf.jar を取得できます。jmf.jar は、ほかの JAR ファイルとともにこの zip ファイルに含まれているので、そこから抽出できます。

jmf.jar を取得できたら、jmf.jar 自体を C:\plugin\extensions\workspace1 などのディレクトリに抽出します。ここで、manifest.mf ファイルには不要な署名情報が含まれているので、META-INF ディレクトリが存在する場合はこのディレクトリを削除します。

次に、jmf.jar に基づいて新しい JAR ファイルを作成し、独自のマニフェストファイルを作成します。作成したマニフェストファイルに jmf_manifest という名前を付けます。このファイルを、jar ツールへの入力として指定します。この例で使用されている内容は次のとおりです。

Extension-Name: javax.media.s_my_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

まず、jmf.jar に含まれていたファイルを新しい JAR ファイルにまとめ、my_jmf.jar という名前を付けます。このファイルに署名し、それに s_my_jmf.jar という名前を付けます。

workspace1 にあるファイルと新しいマニフェストファイル jmf_manifest を JAR ファイルにまとめるために、cd を使用して workspace1 ディレクトリに移動し、JDK の jar ツールを次のように使用します。

C:\plugin\extensions\workspace1>C:\"Program Files"\Java\jdk1.6.0\bin\jar cmf jmf_manifest my_jmf.jar *.class codecLib com javax jmapps

codecLibcomjavax、および jmapps は、as *.class と同様に JAR ファイルにまとめる必要があるサブディレクトリです。

thawte.p12 という Thawte キーストアが C:\plugin\keystores にあり、storepasskeypass の両方のパスワードが同じであり、storetype"pkcs12"、キーストア別名が"Sun Microsystems Inc.'s Thawte Consulting cc ID" の場合、次のステップをスキップして、my_jmf.jar の署名に進み、署名付き JAR ファイル s_my_jmf.jar を作成できます。

次のコマンドを実行することによって、storepasskeypass の両方について同じパスワードを持つ thawte.p12 というキーストアを作成でき、キーストア別名は "New Technology Company's Thawte Consulting cc ID" です。

C:\plugin\keystores>C:\"Program Files"\Java\jdk1.6.0\bin\keytool -genkey -alias "Sun Microsystems Inc.'s Thawte Consulting cc ID" -keypass password -keystore thawte.p12 -storetype pkcs12 -storepass password

この例では、jarsigner ツールを使って新しい JAR ファイルに署名します。使用

C:\plugin\extensions\workspace1>C:\"Program Files"\Java\jdk1.6.0\bin\jarsigner -keystore C:\plugin\keystores\thawte.p12 -storepass password -keypass password -storetype "pkcs12" -signedjar s_my_jmf.jar my_jmf.jar "New Technology Company's Thawte Consulting cc ID"

この新しい署名付き JAR ファイルを次のように検証できます。

C:\plugin\extensions\workspace1>C:\"Program Files"\Java\jdk1.6.0\bin\jarsigner -verify s_my_jmf.jar

これで、raw インストール用の正しい manifest.mf ファイルを持つ署名付き JAR ファイルが完成しました。

次に、アプレットの JAR ファイルを作成する必要があります。


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

このアプレットは単一のファイル SimplePlayerApplet.class で構成されており、メディアファイルの再生に使用されます。アプレットのソースコードを見るには、ここをクリックしてください。ここでは、アプレットのマニフェストファイルを作成して applet_manifest という名前を付け、アプレットとマニフェストを JAR ファイルにまとめてから、それに署名します。

アプレット applet_manifest は、次のとおりです。

Extension-List: s_my_jmf 
s_my_jmf-Extension-Name: javax.media.s_my_jmf
s_my_jmf-Specification-Version: 2.1
s_my_jmf-Implementation-Version: 2.1.1
s_my_jmf-Implementation-Vendor-Id: com.sun
s_my_jmf-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/jmf/s_my_jmf.jar

上記のマニフェストは、拡張機能 JAR ファイル s_my_jmf.jarjava.sun.com Web サーバー (http://java.sun.com/products/plugin/extensions/examples/jmf) からダウンロードできることを示しています。

SimplePlayerApplet.classapplet_manifestC:\plugin\extensions\workspace2 にある場合、次のコマンドを使用してアプレットとマニフェストを JAR ファイルにまとめることができます。

C:\plugin\extensions\workspace2>C:\"Program Files"\Java\jdk1.6.0\bin\jar cmf applet_manifest my_SimplePlayerApplet.jar *.class

ここでも、jarsigner を使用して JAR ファイルに署名します。

C:\plugin\extensions\workspace2>C:\"Program Files"\Java\jdk1.6.0\bin\jarsigner -keystore C:\plugin\keystores\thawte.p12 -storepass password -keypass password -storetype "pkcs12" -signedjar s_my_SimplePlayerApplet.jar my_SimplePlayerApplet.jar "Sun Microsystems Inc.'s Thawte Consulting cc ID"

このファイルを次のように検証します。

C:\plugin\extensions\workspace2>C:\"Program Files"\Java\jdk1.6.0\bin\jarsigner -verify s_my_SimplePlayerApplet.jar

これで、署名付きのアプレット JAR ファイル s_my_SimplePlayerApplet.jar が完成しました。そのマニフェストに含まれている情報によって、必要な拡張機能 JAR ファイル s_my_jmf.jar<jre_location>/lib/ext に存在しないか古いバージョンである場合は、インストールがトリガーされます。

次に、アプレットの HTML を作成する必要があります。

アプレットの HTML を作成する

いくつかの方法を選択できます。このページにアクセスするユーザーのシステムに Java Plug-in バージョン 1.3.1_01 以降がインストールされていることを前提として、従来の APPLET タグを使用できます。(従来の APPLET タグでアプレットを起動するには、1.3.1_01 以降の Java Plug-in が必要です。) JDK の bin ディレクトリにある HTML コンバータ (<sdk_location>/bin/HtmlConverter.exe) を使用して、アプレットをさまざまな形式に変換することもできます。ここでは、次に示す従来のアプレット形式を使用します。

SimplePlayerApplet-1.html

<html>
<head>
<title>SimplePlayerApplet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<applet code="SimplePlayerApplet.class" archive="s_my_SimplePlayerApplet.jar" width=320 height=300>
<param name="file" value="0720crt1.avi">
</applet>
</body>
</html>


メディアファイルは 0720crt1.avi です。

この例では、java.sun.com Web サーバー (http://java.sun.com/products/plugin/extensions/examples/jmf) に、次のファイルが置かれています。

例をテストする

次のリンクをクリックすることによって、設定をテストできます。

SimplePlayerApplet-1.html

ブラウザに URL を指定すると、まずアプレット JAR ファイルがダウンロードされ、キャッシュされます。拡張機能がインストールされていない場合は、次の「Java Request Download」ダイアログが表示されます。「The applet requires installation of optional package. Do you want to continue?」。続行またはキャンセルするオプションがあります。「OK」ボタンを押してインストールを続行する場合は、拡張機能 JAR ファイルの「セキュリティー警告」ダイアログが表示されます。「実行」ボタンを押すことで、パッケージのインストールを続行できます。拡張機能が <jre_location>/lib/ext にインストールされ、アプレットが実行されます。

 


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