アプレット配備パラメータ

Java Rich Internet Application ガイド > アプレット開発者ガイド > アプレット配備パラメータ

アプレットは、appletobject、または embed タグを、必要なパラメータとともに手動でコーディングすることによって配備できます。このセクションでは、これらのパラメータについて説明します。ただし、ブラウザ間の互換性を保証するために、配備ツールキットを使用してアプレットを配備することをお勧めします。配備ツールキットの使用、および JNLP を使用したアプレットの配備については、「Java Rich Internet Application 配備アドバイス」を参照してください。

次の項目について説明します。

JNLP を使用した配備

jnlp_href

プラグインがアプレットを起動するために使用すべき情報を含むファイル。

ロード画面

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-vm-args

Java 起動時にアプリケーションが JNLP クライアントに使用させる標準の仮想マシンの引数と非標準の仮想マシンの引数の追加セットを指定します。java_argumentsjava-vm-args の両方が存在する場合は、java-vm-args 引数が優先されます。

java_arguments

このアプレットインスタンスの実行時に使用される JVM コマンド行引数を指定します。ほぼすべての JVM コマンド行引数がサポートされていますが、特定の規則や制限が存在します。java_argumentsjava-vm-args の両方が存在する場合は、java-vm-args 引数が優先されます。

java_arguments オプションは、アプレットの起動中にクライアントの Java VM が再起動されないようにすることを主な目的としています。良い方法として、java_argumentsjava-vm-args の両方を指定する場合は、それらに同じ値を含めるようにしてください。

java_argumentsjava-vm-args の関係を示す例

シナリオ 1:両方のパラメータが定義され、それらの値が異なっています。

java_arguments = -Xmx256m
java-vm-args = -verbose

すべてのプラットフォーム上で予想される動作:-verbose
JVM は最初に、java_arguments タグで指定された値を使って起動します。クライアント JVM は不一致を検出し、-verbose のみを使って再起動します。警告が Java コンソールに出力されます。

シナリオ 2:両方のパラメータが定義され、java-vm-args で指定された値が、java_arguments で指定された値のサブセットになっています。

java_arguments = -Xmx256m -verbose
java-vm-args = -verbose

すべてのプラットフォーム上で予想される動作:-verbose
JVM は最初に、java_arguments で指定された完全な引数セットを使って起動します。クライアント JVM は不一致を検出し、java-vm-args で指定された小さい引数セットのみを使って再起動します。パラメータの不一致に関する警告が Java コンソールに出力されます。

シナリオ 3:java_arguments タグは HTML ファイルで定義されているが、java-vm-args タグは JNLP ファイルで定義されていません

java_arguments = -Xmx256m
java-vm-args = [not defined]

すべてのプラットフォーム上で予想される動作:[no jvm params]
JVM は最初に、java_arguments で指定された値を使って起動します。クライアント JVM は不一致を検出し、パラメータを使わずに JVM を再起動します。パラメータの不一致に関する警告が Java コンソールに出力されます。

シナリオ 4:java_arguments タグは HTML ファイルで定義されていないが、java-vm-args タグは JNLP ファイルで定義されています

java_arguments = [not defined]
java-vm-args = -Xmx256m

すべてのプラットフォーム上で予想される動作:-Xmx256m
java_arguments タグには何も指定されていないため、JVM は最初に JVM 引数を使わずに起動します。クライアント JVM は不一致を検出し、java-vm-args で指定された値を使って JVM を再起動します。

その他の例

  1. デフォルトより大きい最大ヒープサイズの指定:
    <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
        <PARAM name="java_arguments" value="-Xmx128m">
    </APPLET>
      
    
  2. デフォルト以外のヒープサイズと、Java Binding for the OpenGL API (JOGL) を介して OpenGL を使用するアプレットで通常使われる Java 2D ハードウェアアクセラレーションオプションの指定:
    <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
        <PARAM name="java_arguments" value="-Xmx256m -Dsun.java2d.noddraw=true">
    </APPLET>
         
    
  3. ガベージコレクタの冗長出力と、Java プログラミング言語でのアサーション機能の有効化:
    <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 Plug-in では、java_arguments パラメータで指定されたすべての JVM コマンド行引数がセキュアであるかぎり、アプレットや、それによってロードされるどのクラスもアクセス権なしで実行できます。

java_arguments パラメータでは、安全でない JVM コマンド行引数 (つまり、安全なリストに記載されていないコマンド行引数) が指定される可能性もあります。この場合は、セキュリティー上の問題が発生する可能性があるため、Java Plug-in によって、署名されていないクラスをロードできないという規則が適用されます。つまり、このような JVM インスタンスでは、ユーザーがセキュリティーダイアログボックスを受け入れた信頼されたコードのみをロードできます。セキュリティー保護されていないシステムプロパティーが指定された JVM インスタンスで、署名なしの、または信頼されていないクラスをロードしようとした場合は、署名がないために指定されたクラスをロードできなかったことを示す ClassNotFoundException がスローされます。

java_arguments パラメータで渡すことのできるコマンド行引数に関する制限はごく少数しかありません。一般に、-Xbootclasspath 引数のほか、-classpath-jar などの、パスを指定するために使用されるコマンド行引数はすべて禁止されます。ほかの (現在および将来の) コマンド行引数はすべて、上記の安全なコマンド行引数と安全でないコマンド行引数についての注意書きを付けてサポートするようにしてください。

java_arguments パラメータで渡されたコマンド行引数は、Java コントロールパネルの「Java Runtime Environment 設定」ダイアログで指定された任意のコマンド行引数に追加されます。コントロールパネルからのコマンド行引数は、それらのコマンド行引数が指定されたバージョンのすべての JVM インスタンスに使用されます。そのため、java_arguments パラメータでそれを完全に置き換えることはできません。

JVM コマンド行引数が指定された場合は、その要求を満たすために、Java Plug-in が別の JVM インスタンスを起動することが必要になる可能性があります。つまり、既存の JVM インスタンスがその要求を満たすような一連の正しいコマンド行引数で起動された可能性はほとんどありません。特定のアプレットを起動するために新しい JVM インスタンスを正確にいつ起動するかについての規則は、意図的に指定されないまま残されており、今後のリリースで変更が必要になる可能性があります。新しい JVM インスタンスの共有と作成についての一連の概略のガイドラインを次に示します。

特定のアプレットを起動するために使用される 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>

JRE バージョンの選択

java_version

特定のアプレットを起動するための JRE バージョンを指定します。

  1. 特定のアプレットのための特定の JRE バージョンの指定:
    <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
        <PARAM name="java_version" value="1.5.0_09">
    </APPLET>
      
    
  2. 特定のアプレットのための特定のファミリ内の任意の JRE の要求:
    <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
        <PARAM name="java_version" value="1.5*">
    </APPLET>
    
  3. 特定のファミリまたはそれ以降の任意のファミリからの JRE の指定:
    <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
        <PARAM name="java_version" value="1.5+">
    </APPLET>
    

classid Internet Explorer での 属性

Internet Explorer ブラウザは、<object> タグの classid 属性を使用して、そのタグの内容の表示方法を示します。classid 属性を codebase 属性と組み合わせて使用すると、現在システム上に使用可能な JRE バージョンが存在しない場合は、特定の JRE バージョンを自動的にダウンロードしてインストールできます (「classid の使用法」を参照)。最近では、特定のファミリ内の任意の JRE を選択する方法を提供するために、ファミリ CLSID の概念が導入されています。(詳細は、「Deploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer」を参照してください。)

以前のドキュメントで説明されている classid オプションのすべてが、Java Plug-in と連動して機能して、特定の JRE バージョンを選択したり、場合によっては自動的にダウンロードしてインストールしたりできるわけではありません。このセクションでは、Java Plug-in と連動して機能するオプションの種類と、使用されている下位互換性メカニズムについて説明します。

推奨される使用法

classid 属性の推奨される使用法は、上で説明した java_version パラメータとの組み合わせです。複数の JRE をサポートする最新バージョンの Java Plug-in を使用することを示すには、<object> タグに、インストールされている最新の JRE バージョンを常にポイントする動的 classid を指定してください。次に、java_version パラメータを使用して、アプレットを実行するために使用する JRE のバージョンを指定してください。

推奨される使用法の例:

  <object 
    classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    codebase="http://www.example.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>

現時点では、Oracle は、Java Plug-in を記述するための新しい CLSID を提供しておらず、動的 classid の使用をオーバーロードしていることに注意してください。つまり、Java Plug-in での複数の JRE バージョンがサポートされていない以前のバージョンの JRE がすでにインストールされている場合は、その classid のハンドラがすでに使用可能であるため、Java Plug-in が自動的にダウンロードされてインストールされることはありません。その結果、java_version パラメータを使用したバージョンの選択は無視されます。新しい classid を提供しないというこの決定は、将来見直される可能性があります。当面の間、Oracle は、複数の 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 の両方を指定すると、未定義の動作が発生します。

Mozilla ブラウザファミリでの version および jpi-version 属性

Mozilla ブラウザファミリは、<embed> タグ内の MIME タイプを使用して、そのタグの内容の表示方法を示します。また、<embed> タグは、JRE の特定バージョンの自動ダウンロードもサポートしています。

以前のバージョンの Java Plug-in は、application/x-java-applet MIME タイプの version および jpi-version 部分を使用して、JRE バージョンの選択を実行していました。以前のドキュメントで説明されているこれらのメカニズムのすべてが、Java Plug-in と連動して機能して、特定の JRE バージョンを選択したり、場合によっては自動的にダウンロードしてインストールしたりできるわけではありません。このセクションでは、Java Plug-in と連動して機能するオプションの種類と、使用されている下位互換性メカニズムについて説明します。

推奨される使用法

<embed> タグの推奨される使用法は、アプレットの MIME タイプで version または jpi-version を指定しないことです。代わりに、java_version パラメータを使用して、アプレットを実行するための特定の JRE バージョンを選択します。以前の Java バージョンがインストールされていない場合は、pluginspage パラメータを使用して、Java Plug-in の自動ダウンロードを有効にすることができます。

  <embed code="MyApplet"
    type="application/x-java-applet"
    pluginspage="http://www.example.com/out-of-proc-plugin-url-placeholder.xpi"
    width="200" height="200">
    java_version="1.5*"
  </embed>

現時点では、Oracle は、Java Plug-in を記述するための新しい MIME タイプを提供しておらず、application/x-java-applet MIME タイプの使用をオーバーロードしていることに注意してください。つまり、Java Plug-in での複数の JRE バージョンがサポートされていない以前のバージョンの JRE がすでにインストールされている場合は、その MIME タイプをサポートしているプラグインがすでに使用可能であるため、Java Plug-in が自動的にダウンロードされてインストールされることはありません。その結果、java_version パラメータを使用したバージョンの選択は無視されます。新しい MIME タイプを提供しないというこの決定は、将来見直される可能性があります。当面の間、Oracle は、複数の 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

Java Plug-in は、アプレットごとに、アプレットでのクラスローダーキャッシュの使用から抜け出るための方法を提供します。

<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
    <PARAM name="classloader_cache" value="false">
</APPLET>

classloader_cache パラメータのデフォルト値は true であり、クラスローダーキャッシュはデフォルトで有効になっています。

セキュリティー

permissions

アプレットの実行に必要とされるアクセス権のレベルを指定します。次の値が有効です。

  <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
     <PARAM name="permissions" value="sandbox" />
  </APPLET>

このパラメータを省略した場合は、default が指定されているとみなされます。

Java キャッシュ

Java アプリケーションで使用するファイルは、あとですぐに実行できるように特別なフォルダに格納されます。このフォルダは Java キャッシュとも呼ばれます。Java コントロールパネルの「一般」パネルの「インターネット一時ファイル」サブパネルを使用すると、Java キャッシュに格納されているファイルを表示したり、使用しているコンピュータで Java キャッシュが占有できるディスク容量を制御したりできます。

cache_archive

cache_archive 属性には、キャッシュするファイルのリストを指定します。

<param name="cache_archive" VALUE="a.jar,b.jar,c.jar">

applet タグの archive 属性と同様に、cache_archive 属性の JAR ファイルのリストには完全な URL は指定されていませんが、常に embed/object タグに指定されている codebase からダウンロードされます。


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