Java

アプレット配備
JavaSE 6u10 用

ドキュメント の目次

アプレット開発者ガイド > アプレット配備

目次


はじめに

アプレットは、APPLET、OBJECT、または EMBED タグを、必要なパラメータとともに手動でコーディングすることによって配備できます。ただし、ブラウザ間の互換性を保証するために、配備ツールキットを使用してアプレットを配備することをお勧めします。アプレットは、次の要素を介して配備したり起動したりできます。

配備ツールキットの使用、および JNLP を使用したアプレットの配備については、「配備アドバイス」のドキュメントを参照してください。

参照: APPLET、OBJECT、EMBED 要素への新しいパラメータ

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_arguments

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

  1. デフォルトより大きい最大ヒープサイズの指定:
    <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
        <PARAM name="java_arguments" value="-Xmx128m">
    </APPLET>
      
  2. デフォルト以外のヒープサイズと、一般に、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_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 インスタンスの共有と作成についての一連の概略のガイドラインを次に示します。

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

Internet Explorer での classid 属性

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 の両方を指定すると、未定義の動作が発生します。

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 バージョンを選択したり、場合によっては自動的にダウンロードしてインストールしたりできるわけではありません。ここでは、新しいプラグインと連動して機能するオプションの種類と、使用されている下位互換性機構について説明します。

推奨される使用法

<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.
フィードバック

Sun
Java Technology