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

JavaTM Plug-in での APPLET タグのサポートについて

注:

Microsoft VM と Sun 製品の互換性に関する詳細は、「付録 4: Microsoft VM と Java アプレットの互換性問題」を参照してください。

Q: Java プラットフォームを勧める理由は何ですか。

A: Java プラットフォームは機能性、性能、およびセキュリティーオプションにおいて従来の製品を凌いでいます。開発者は、自分のアプリケーションがフルレンジの API やライブラリを使用できるように、ソフトウェアのユーザーができるだけ新しい FC (feature-complete) Java プラットフォームを持ってほしいと考えます。顧客が Java プラットフォームを使用していれば、開発者はより強力で堅牢なフル機能のアプリケーションやアプレットを記述できるようになります。また、Java プラットフォームによってコードの性能も向上します。

APPLET タグをサポートした最新の Java Plug-in を使用すれば、自分のアプレットを実行しているクライアントが最新の Java プラットフォームを備えるようになるのに役立ちます。

Q: 自分のアプレットを呼び出すのに、引き続き OBJECT タグを使用しても良いですか。

A: はい。Java Plug-in が APPLET タグをサポートするように拡張されていても、アプレットの起動に OBJECT タグを使用する既存の Web ページとは完全に下位互換性があります。

Q: ClassFormatError によってアプレットが失敗します。何が悪いのでしょうか。

A: この問題は、古いコンパイラによって生成されたバイトコードが原因となっている場合があります。このようなバイトコードは、最近の JRE のリリースでは強化している仮想マシンの仕様に厳密に準拠していないからです。

Q: Java Plug-in にアプレットの cab ファイルがロードされません。どうしてですか。

A: Java Plug-in は .jar ファイルにパッケージされるアプレットをサポートしています。Microsoft 独自の .cab ファイル形式はサポートしていません。したがって、Microsoft の .cab file ファイル形式にパッケージ化されたアプレットは JRE および Java Plug-in にはロードされません。

Q: Authenticode 方式で署名されたアプレットは Sun の JRE および Java Plug-in で動作しますか。

A: 動作しません。Sun JRE および Java Plug-in は、Authenicode 署名や .cab ファイル形式など Microsoft 独自のテクノロジはサポートしていません。Microsoft の Authenticode テクノロジに依存した署名付きアプレットは、JRE および Java Plug-in ではロードされません。

Q: J/Direct、AFC、WFC などを使用しているアプレットは、Sun の JRE および Java Plug-in で動作しますか。

A: 動作しません。ここに挙げられたものやその他の Microsoft 独自のテクノロジのライブラリは、JRE および Java Plug-in には含まれていません。Microsoft 独自のテクノロジに依存するアプレットを JRE および Java Plug-in で実行した場合、正しく動作しません。

Q: アプレットが AWT ディスパッチイベントスレッドから NullPointerException をスローします。どうしてですか。

A: アプレットの起動時と停止時に発生するイベントが、Microsoft と Sun の Java プラットフォームの実装間で異なるからです。たとえば、アプレットのロジックが、Applet.start()/Applet.stop() が呼び出されたときに表示されるアプレットに依存しているとします。この状態は、Microsoft の実装上でアプレットが実行されている場合は正常ですが、Sun の実装では正常ではありません。

Microsoft による Java プラットフォームの実装上で起動時と停止時に発生する固有のイベントに依存するアプレットは、JRE および Java Plug-in では正しく動作しません。この種の問題でもっともよく見られる症状に、AWT ディスパッチイベントスレッドからの NullPointerException があります。

Q: アプレットが AWT ディスパッチイベントスレッドから ClassCastException をスローします。どうしてですか。

A: Microsoft と Sun の実装では、アプレットとそれを取り囲むフレーム間のコンテナ数が異なります。したがって、Microsoft VM における特定の包含レベルにあるフレームに依存するアプレットは、AWT 階層コンポーネントツリー全体をナビゲートしないので、Sun の JRE および Java Plug-in で実行したら失敗する可能性があります。この種の問題でもっともよく見られる症状に、AWT ディスパッチイベントスレッドからの ClassCastException があります。

Q: Java Plug-in は、Java と JavaScript 間の通信をサポートしていますか。

A: はい。Java Plug-in は、基本的な双方向性の Java と JavaScript 間の通信をサポートしています。ただし、次のような非互換性が判明しています。

Microsoft の実装では、JavaScript で開示されるアプレットのメソッドやプロパティーはアプレットオブジェクトのメソッドやフィールドとまったく同じです。ところが、Java Plug-in では、アプレットのメソッドやプロパティーは JavaBeansTM のイントロスペクションをとおして JavaScript で開示されます。ここでは、Microsoft VM とは異なる手法でアプレットのフィールドが処理されます。したがって、アプレットオブジェクトのフィールドにアクセスする JavaScript は、JRE および Java Plug-in 上で実行すると同じ動作をしません。

 


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