注: この Java 配備ガイドでは、Java SE 6 update 10 リリースより前にリリースされた機能について説明します。最新情報については、Java Rich Internet Application の開発および配備を参照してください。
このガイドでは、Java™ テクノロジの Microsoft 仮想マシン (VM) から Sun Java Runtime Environment (JRE™) にアプレットをアップグレードする理由と方法を説明します。98% のケースでは、アプレットを変更せずに Sun JRE で実行できます。このドキュメントでは、残り 2% のケースのために、アップグレードする方法を示します。このアップグレードには利点があります。Microsoft VM は初期の、1997 年におけるバージョン 1.1 の Java テクノロジに基づいているためです。Sun Microsystems による最新で、標準互換のバージョンは JRE 6 です。2006 年 12 月にリリースされ、以前のバージョンに比べて多くの機能が拡張されています。
アプレットをアップグレードする重要な理由は、Microsoft VM では、自社のどの製品においても Java テクノロジ実装がサポートまたは提供されない、という点にあります。すでに最新のオペレーティングシステムの Internet Explorer Web ブラウザには Java テクノロジを搭載しなくなっていますが、このことは、次の 2 つの重要な意味を持ちます。
Microsoft VM は 10 年前の Java 1.1 テクノロジに基づいているため、明らかに時代遅れです。一方、Sun JRE 6 の一部になっている Sun Microsystem の VM は完全に標準に準拠しており、最新です。これが、Sun JRE 上で動作するように Java アプレットおよびアプリケーションをアップグレードするもう 1 つの理由となります。
Microsoft は開発者に、Java アプレットおよびアプリケーションを J# または C# 言語にアップグレードすることを推奨しています。しかし、J# や C# は Microsoft の Windows プラットフォームでしか動作せず、クロスプラットフォーム互換性を提供しません。
Sun JRE にアップグレードするには、次の手順に従います。
ほとんどのアプレットは Sun JRE 内で正しく動作しますが、アプレットのテストは必ず行なってください。
テスト用コンピュータに最新の Sun JRE がすでにインストールされているかどうかを確認するには、次の手順に従います。
コントロールパネルが開きます。
「Java」というラベルの付いたコーヒーカップのアイコンが、コントロールパネルに表示されます。Windows のコントロールパネルにコーヒーカップのアイコンが表示されない場合、最新版の Sun JRE がコンピュータにインストールされていません。
次の URL からコンピュータに Sun JRE をダウンロードしてインストールできます。http://java.com/java/download/index.jsp。
コンピュータへの Sun JRE のインストールが完了したら、Web ブラウザでのアプレット実行用として Sun JRE が有効になっているかを検証する必要があります。
Web ブラウザが Microsoft VM、Sun JRE のどちらを使用しているか検証するには、次の手順に従います。
コントロールパネルが開きます。「Java」というラベルの付いたコーヒーカップのアイコンが、コントロールパネルに表示されます。
Java コントロールパネル (「詳細」タブ > 「Javaコンソール」) で「コンソールを表示する」が選択されていると、次のセクションで示すように、Java コンソールに Java のバージョン番号が表示されます。バージョン番号は、ブラウザで使用中の Sun JRE を表します。
Web ブラウザ内でアプレットを実行してテストします。アプレット実行用として一連の標準テストが用意されている場合には、それらのテストを実行します。
互換性の問題がある場合には、Java コントロールパネル (「詳細」タブ > 「Javaコンソール」) で「コンソールを表示する」が選択されている場合に画面上に表示される Java コンソールで、その詳細を確認します。次の図に、Java コンソールのサンプルのスクリーンショットを示します。
Java コンソールの詳細については、「Java コンソール」ページを参照してください。
Sun JRE でアプレットが問題なく動作することを確認したら、顧客に Sun JRE を配備する最適な方法を検討します。「Sun JRE のインターネット/イントラネット配備」を参照してください。
Sun JRE を使ってブラウザ内でアプレットを実行した場合に発生する可能性のある問題の一覧を、例外と症状に分けて次に示します。
例外 | 解決方法 |
---|---|
java.lang.ClassFormatError がスローされるスロー元: ClassLoader. |
|
java.lang.ClassNotFoundException がスローされるスロー元: ClassLoader. |
|
java.security.AccessControlException が java.beans.Introspector.setBeanInfoSearchPath() の実行時にスローされる。 |
|
com.ms.security パッケージで ClassLoader によって java.lang.ClassNotFoundException がスローされる。 |
|
com.ms.* パッケージで ClassLoader によって java.lang.ClassNotFoundException がスローされる。 |
|
java.lang.ClassCastException がマウスがアプレットのフレーム上を移動するときに AWT ディスパッチイベントスレッドからスローされる。 |
|
Applet.start() または Applet.stop() が呼び出されると、java.lang.NullPointerException がスレッドからスローされる。 |
|
java.awt.Graphics.drawString() で java.lang.NullPointerException がスローされる。 |
|
java.awt.Graphics.drawImage() で java.lang.NullPointerException がスローされる。 |
|
java.awt.Color で java.lang.IllegalArgumentException がスローされる。 |
|
java.security.AccessControlException が java.lang.Thread の stop() 、suspend() 、または resume() メソッドでスローされる。 |
|
java.lang.InstantiationException: either code or object should be specified, but not both. |
症状 | 解決方法 |
---|---|
署名付き .cab ファイルを .jar ファイルとして再パッケージ化すると、Sun JRE 内で実行されるアプレットが未署名になる。 |
|
.cab ファイルから .jar ファイルにアップグレードした署名済みアプレットを Microsoft VM で実行するとセキュリティー例外がスローされる。 |
|
クライアントの認証にブラウザからの証明書を使用できない。 | |
CJK (Chinese-Japanese-Korean) フォントをボールドで表示すると読みにくくなる。 | |
HTTP URL と HTTPS URL の間のリダイレクトが行われない。 |
この一覧にない問題が発生した場合は、Java Upgrade Forum を参照してください。