|
アプレット配備
|
アプレット開発者ガイド > アプレット配備
目次
アプレットは、APPLET、OBJECT、または EMBED タグを、必要なパラメータとともに手動でコーディングすることによって配備できます。ただし、ブラウザ間の互換性を保証するために、配備ツールキットを使用してアプレットを配備することをお勧めします。アプレットは、次の要素を介して配備したり起動したりできます。
配備ツールキットの使用、および JNLP を使用したアプレットの配備については、「配備アドバイス」のドキュメントを参照してください。
プラグインがアプレットを起動するために使用すべき情報を含むファイル。
新しいプラグインでは、アプレットがロードされる前に表示されるイメージのカスタマイズ機能が向上しています。古い『Java Plug-in ガイド』の「特別な属性」のセクションで説明されている image
パラメタのターゲットとして、動画 GIF がサポートされるようになりました。さらに、現在は、次の新しいパラメータがサポートされています。
boxborder
アプレットがロードされる前に表示されるイメージの表示中に、アプレット領域の縁の周囲に 1 ピクセル幅の境界を描画するべきかどうかを示す boolean 型パラメータ。デフォルトは true
ちらつきの発生を防止するために、特にロードイメージとして動画 GIF を使用している場合は、この値を false
に設定することをお勧めします。
centerimage
ロードイメージを左上隅から表示し始めるのではなく、アプレット領域内の中央にそろえるべきかどうかを示す boolean 型パラメータ。デフォルトでは false
に設定される
boxborder
パラメータと centerimage
パラメータの使用例を次に示します。
<APPLET archive="large_archive.jar" code="MyApplet" width="300" height="300"> <!-- Use an animated GIF as an indeterminate progress bar while the applet is loading --> <PARAM NAME="image" VALUE="animated_gif.gif"> <!-- Turn off the box border for better blending with the surrounding web page --> <PARAM NAME="boxborder" VALUE="false"> <!-- Center the image in the applet's area --> <PARAM NAME="centerimage" VALUE="true"> </APPLET>
java_arguments
このアプレットインスタンスの実行時に使用される JVM コマンド行引数を指定します。ほぼすべての JVM コマンド行引数がサポートされていますが、特定の規則や制限が存在します。
例
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_arguments" value="-Xmx128m"> </APPLET>
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_arguments" value="-Xmx256m -Dsun.java2d.noddraw=true"> </APPLET>
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_arguments" value="-verbose:gc -ea:MyApplet"> </APPLET>
「Java Web Start 開発者ガイド」の「JNLP ファイルの構文」の節には、一連の「安全な」JVM コマンド行引数およびシステムプロパティーが定義されています。新しいプラグインでは、java_arguments
パラメータで指定されているすべての JVM コマンド行引数が安全であるかぎり、アプレットや、そのアプレットによってロードされるどのクラスも署名されていない可能性があります。
java_arguments
パラメータでは、安全でない JVM コマンド行引数 (つまり、安全なリストに記載されていないコマンド行引数) が指定される可能性もあります。この場合は、セキュリティー上の問題が発生する可能性があるため、Java Plug-in によって、署名されていないクラスをロードできないという規則が適用されます。つまり、このような JVM インスタンスでは、ユーザーがセキュリティーダイアログボックスを受け入れた信頼されたコードのみをロードできます。セキュリティー保護されていないシステムプロパティーが指定された JVM インスタンスで、署名なしの、または信頼されていないクラスをロードしようとした場合は、署名がないために指定されたクラスをロードできなかったことを示す ClassNotFoundException
がスローされます。
java_arguments
パラメータで渡すことのできるコマンド行引数に関する制限はごく少数しかありません。一般に、-Xbootclasspath
引数のほか、-classpath
や -jar
などの、パスを指定するために使用されるコマンド行引数はすべて禁止されます。ほかの (現在および将来の) コマンド行引数はすべて、上記の安全なコマンド行引数と安全でないコマンド行引数についての注意書きを付けてサポートするようにしてください。
java_arguments
パラメータで渡されたコマンド行引数は、Java コントロールパネルの「Java アプレットのランタイム設定」ダイアログで指定された任意のコマンド行引数に追加されます。コントロールパネルからのコマンド行引数は、それらのコマンド行引数が指定されたバージョンのすべての JVM インスタンスに使用されます。そのため、java_arguments
パラメータでそれを完全に置き換えることはできません。「Java アプレットのランタイム設定」ダイアログもまた、6u10 で複数の JRE バージョンをより適切に管理できるように拡張され、現在では、Java Web Start に使用される「Java アプレットのランタイム設定」ダイアログと同じ機能を持っています。
JVM コマンド行引数が指定された場合は、その要求を満たすために、新しいプラグインが別の JVM インスタンスを起動しなければならなくなる可能性があります。つまり、その要求を満たすために、既存の JVM インスタンスが一連の正しいコマンド行引数で起動されることはほとんどありません。特定のアプレットを起動するために新しい JVM インスタンスを正確にいつ起動するかについての規則は、意図的に指定されないまま残されています。この機能が 6u10 リリースの新機能であり、今後のリリースで変更が必要になる可能性があるためです。新しい JVM インスタンスの共有と作成についての一連の概略のガイドラインを次に示します。
java_arguments
なしで指定されたコマンド行引数) で起動されている場合は、java_arguments
でコマンド行引数が 1 つしか指定されていないアプレットであっても、この JVM インスタンスがアプレットの起動に使用されることは決してありません。 -Xmx
は特別に処理されます。既存の JVM インスタンスが java_arguments
を使用して、たとえば -Xmx256m
で起動されており、新しいアプレットが -Xmx128m
を要求した場合、その新しいアプレットは既存の JVM インスタンスで実行される可能性が高くなります。つまり、-Xmx
の指定は「より大きいか、または等しい」のテストで照合されます。 特定のアプレットを起動するために使用される JVM インスタンスに「名前を付け」て、以降のアプレットにその JVM インスタンスでの実行を「強制する」方法はありません。
特定のアプレットを、独自の JVM インスタンス内でその他のすべてのアプレットから切り離すには、「separate_jvm」
パラメータのセクションを参照してください。
separate_jvm
特定のアプレットを独自の JVM インスタンス内で実行すべきであることを指定する boolean 型パラメータ。このパラメータは、同じ JVM 内で実行され、ヒープスペースやその他のリソースを消費している可能性のあるほかのアプレットからのどのような干渉も許容できない、特定の強力なデスクトップアプレットをサポートします。
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_arguments" value="..."> <PARAM name="separate_jvm" value="true"> </APPLET>
java_version
特定のアプレットを起動するための JRE バージョンを指定します。
例
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_version" value="1.5.0_09"> </APPLET>
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_version" value="1.5*"> </APPLET>
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="java_version" value="1.5+"> </APPLET>
Internet Explorer ブラウザは、<object>
タグの classid
属性を使用して、そのタグの内容の表示方法を示します。classid
属性を codebase
属性と組み合わせて使用すると、現在システム上に使用可能な JRE バージョンが存在しない場合は、特定の JRE バージョンを自動的にダウンロードしてインストールできます (「classid の使用法」を参照)。最近では、特定のファミリ内の任意の JRE を選択する方法を提供するために、ファミリ CLSID の概念が導入されています。
以前のドキュメントで説明されている classid オプションのすべてが、新しい Java Plug-in と連動して機能して、特定の JRE バージョンを選択したり、場合によっては自動的にダウンロードしてインストールしたりできるわけではありません。ここでは、新しいプラグインと連動して機能するオプションの種類と、使用されている下位互換性機構について説明します。
classid 属性の推奨される使用法は、上で説明した java_version
パラメータとの組み合わせです。複数の JRE をサポートする最新バージョンの Java Plug-in を使用することを示すには、<object>
タグに、インストールされている最新の JRE バージョンを常にポイントする動的 classid を指定してください。次に、java_version
パラメータを使用して、アプレットを実行するために使用する JRE のバージョンを指定してください。
推奨される使用法の例:
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="http://java.sun.com/out-of-proc-plugin-url-placeholder.exe#1,6,0,10" width="200" height="200"> <param name="code" value="MyApplet"> <param name="java_version" value="1.5*"> </object>
現時点では、Sun Microsystems, Inc. は、新しい Java Plug-in を記述するための新しい CLSID を提供しておらず、動的 classid の使用をオーバーロードしていることに注意してください。つまり、Java Plug-in での複数の JRE バージョンがサポートされていない以前のバージョンの JRE がすでにインストールされている場合は、その classid のハンドラがすでに使用可能であるため、新しい Java Plug-in が自動的にダウンロードされてインストールされることはありません。その結果、java_version
パラメータを使用したバージョンの選択は無視されます。新しい classid を提供しないというこの決定は、将来見直される可能性があります。当面の間、Sun は、複数の JRE バージョンの選択および新しい Java Plug-in の自動ダウンロードを必要とする上級開発者が、コンテンツを正しく実行するにはユーザーが新しい Java Plug-in をインストールして設定する必要があることをドキュメント化するか、または多くの企業でよく見られるようにクライアントマシンを管理制御するかのどちらかを行うことを期待しています。
すでに classid 属性を使用している開発者が容易に移行できるようにするために、2 つの下位互換性機構が導入されました。つまり、classid を使用して特定の JRE バージョン、または特定のファミリ内の任意の JRE のどちらかを選択する機能です。どちらの場合も、新しい Java Plug-in と、アプレットのターゲット JRE バージョンの両方がすでにインストールされ、設定されていることが前提になります。これらの下位互換性機構と組み合わせて、新しい Java Plug-in を提供している JRE、またはアプレットを実行するために使用される JRE のどちらの JRE の自動ダウンロードもサポートされていません。
これらの下位互換性機構は、将来のリリースで削除される可能性があることに注意してください。既存のコンテンツを、上で説明した新しい機構に移行することをお勧めします。
個々のアプレットのための特定の JRE バージョン (1.5.0_11) の選択:
<object classid="clsid:CAFEEFAC-0015-0000-0011-ABCDEFFEDCBA" width="200" height="200"> <param name="code" value="MyApplet"> </object>ファミリ CLSID を使用した特定のファミリ (1.5) からの最新の JRE の選択:
<object classid="clsid:CAFEEFAC-0015-0000-FFFF-ABCDEFFEDCBA" width="200" height="200"> <param name="code" value="MyApplet"> </object>
codebase
パラメータを使用して旧バージョンの JRE をダウンロードしようとしても無視されることに注意してください。それは、これらの classid が、新しい Java Plug-in のインストールプロセス中に DLL のより新しいバージョンをポイントするようシステムに登録されているためです。また、java_version
パラメータをこれらの classid と組み合わせて使用することがサポートされていないことにも注意してください。java_version
パラメータと、静的またはファミリ classid の両方を指定すると、未定義の動作が発生します。
version
および jpi-version
属性 Mozilla ブラウザファミリは、<embed>
タグ内の MIME タイプを使用して、そのタグの内容の表示方法を示します。また、<embed>
タグは、JRE の特定バージョンの自動ダウンロードもサポートしています。
以前のバージョンの Java Plug-in は、application/x-java-applet
MIME タイプの version
および jpi-version
部分を使用して、JRE バージョンの選択を実行していました。以前のドキュメントで説明されているこれらの機構のすべてが、新しい Java Plug-in と連動して機能して、特定の JRE バージョンを選択したり、場合によっては自動的にダウンロードしてインストールしたりできるわけではありません。ここでは、新しいプラグインと連動して機能するオプションの種類と、使用されている下位互換性機構について説明します。
<embed>
タグの推奨される使用法は、アプレットの MIME タイプで version
または jpi-version
を指定しないことです。代わりに、java_version
パラメータを使用して、アプレットを実行するための特定の JRE バージョンを選択します。以前の Java バージョンがインストールされていない場合は、pluginspage
パラメータを使用して、新しい Java Plug-in の自動ダウンロードを有効にすることができます。
<embed code="MyApplet" type="application/x-java-applet" pluginspage="http://java.sun.com/out-of-proc-plugin-url-placeholder.xpi" width="200" height="200"> java_version="1.5*" </embed>
現時点では、Sun Microsystems, Inc. は、新しい Java Plug-in を記述するための新しい MIME タイプを提供しておらず、application/x-java-applet
MIME タイプの使用をオーバーロードしていることに注意してください。つまり、Java Plug-in での複数の JRE バージョンがサポートされていない以前のバージョンの JRE がすでにインストールされている場合は、その MIME タイプをサポートしているプラグインがすでに使用可能であるため、新しい Java Plug-in が自動的にダウンロードされてインストールされることはありません。その結果、java_version
パラメータを使用したバージョンの選択は無視されます。新しい MIME タイプを提供しないというこの決定は、将来見直される可能性があります。当面の間、Sun は、複数の JRE バージョンの選択および新しい Java Plug-in の自動ダウンロードを必要とする上級開発者が、コンテンツを正しく実行するにはユーザーが新しい Java Plug-in をインストールして設定する必要があることをドキュメント化するか、または多くの企業でよく見られるようにクライアントマシンを管理制御するかのどちらかを行うことを期待しています。
すでに MIME タイプの version
および jpi-version
部分を使用している開発者が容易に移行できるようにするために、新しい Java Plug-in では、制限されたレベルの下位互換性がサポートされています。具体的には、version
属性で、特定のファミリまたはそれ以降の任意のファミリ内の任意の JRE を要求することがサポートされています。特定の JRE バージョンを選択するための jpi-version
属性の使用はサポートされなくなりました。新しい Java Plug-in の正しい動作が妨げられる可能性があるため、この属性を使用しないことを強くお勧めします。
この下位互換性機構は、将来のリリースで削除される可能性があることに注意してください。既存のコンテンツを、上で説明した新しい機構に移行することをお勧めします。
version
属性を使用して 1.5 以降の JRE を要求するには、次のようにします。
<embed code="MyApplet" type="application/x-java-applet;version=1.5" width="200" height="200"> </embed>
version
属性のセマンティクスでは、1.5+
の値を持つ上のタグが java_version
パラメータの使用と等価であることが示されています。新しい Java Plug-in は、5.0 より新しいバージョンである Java SE 6 Update 10 で提供されるため、このバージョン要求は実質的に何の効果もありません。
また、version
属性と java_version
パラメータの組み合わせがサポートされていないことにも注意してください。java_version
パラメータと version
属性の両方を指定すると、未定義の動作が発生します。
classloader_cache
新しいプラグインは、アプレットごとに、アプレットでのクラスローダーキャッシュの使用から抜け出るための方法を提供します。
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300"> <PARAM name="classloader_cache" value="false"> </APPLET>
classloader_cache
パラメータのデフォルト値は true
であり、クラスローダーキャッシュはデフォルトで有効になっています。
Copyright © 2008 Sun Microsystems, Inc. All Rights Reserved. フィードバック |
|