Java ロゴのアイコン

JavaTM アップグレードガイド: Java の Microsoft VM から Sun JRETM への
アプレットのアップグレード


このガイドでは、JavaTM テクノロジの Microsoft 仮想マシン (VM) から Sun Java Runtime Environment (JRETM) にアプレットをアップグレードする理由と方法を説明します。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 にアップグレードするには、次の手順に従います。

  1. Sun JRE がコンピュータにインストールされているかどうかを確認し、まだの場合はインストールします。

  2. ブラウザで Microsoft VM ではなく Sun JRE が使用されているかどうかを確認します。

  3. アプレットが Sun JRE で正しく動作するかテストします。アプレットが正しく動作しない場合は、「アップグレードの潜在的な問題点」の一覧で問題を探します。各「例外」または「症状」の「解決方法」列の下にある「>>」ハイパーリンクをクリックすると、形式、症状、原因、解決方法、および関連情報が記載された記事が表示されます。

ほとんどのアプレットは 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 ブラウザの VM または JRE の確認

Web ブラウザが Microsoft VM、Sun JRE のどちらを使用しているか確認するには、次の手順に従います。

  1. 「スタート」メニューボタンから、「設定」を選択してから「コントロール パネル」を選択します。

    コントロールパネルが開きます。「Java」というラベルの付いたコーヒーカップのアイコンが、コントロールパネルに表示されます。

  2. 「Java」というラベルの付いたコーヒーカップのアイコンをダブルクリックして、次に示すような Java コントロールパネルを起動します。

    Java コントロールパネルのスクリーンショット


  3. Java コントロールパネルで「詳細」タブをクリックします。
  4. 「設定」の下で、「Default Java for browsers」に対する「+」アイコンをクリックします。
  5. 次に示すように、選択対象ブラウザのチェックボックスを確実に選択します。

    「詳細」タブのオプションが表示された Java コントロールパネルのスクリーンショット

  6. ブラウザで Sun JRE が実行されているかどうかを確認します。ブラウザで Sun JRE が実行されていれば、アプレット実行時に次のものが表示されます。

Java コントロールパネル (「詳細」タブ >「Java コンソール」) で「コンソールを表示する」が選択されていると、の節で示すように、Java コンソールに Java のバージョン番号が表示されます。バージョン番号は、ブラウザで使用中の Sun JRE を表します。

アプレットのテスト

Web ブラウザ内でアプレットを実行してテストします。アプレット実行用として一連の標準テストが用意されている場合には、それらのテストを実行します。

互換性の問題がある場合には、Java コントロールパネル (「詳細」タブ >「Java コンソール」) で「コンソールを表示する」が選択されている場合に画面上に表示される Java コンソールで、その詳細を確認します。次の図に、Java コンソールのサンプルのスクリーンショットを示します。

Java コンソールのサンプルのスクリーンショット

Java コンソールの詳細については、次の URL を参照してください。http://java.sun.com/javase/6/docs/technotes/guides/plugin/developer_guide/console.html

Sun JRE でアプレットが問題なく動作することを確認したら、顧客に Sun JRE を配備する最適な方法を検討します。「Sun JRE のインターネット/イントラネット配備」を参照してください。

アップグレードの潜在的な問題点

Sun JRE を使ってブラウザ内でアプレットを実行した場合に発生する可能性のある問題の一覧を、例外と症状に分けて次に示します。

例外
解決方法
ClassLoader によって java.lang.ClassFormatError がスローされる。
>>
ClassLoader によって java.lang.ClassNotFoundException がスローされる。
>>
java.beans.Introspector.setBeanInfoSearchPath() の実行時に java.security.AccessControlException がスローされる。
>>
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.lang.NullPointerExceptionjava.awt.Graphics.drawString() でスローされる。
>>
java.lang.NullPointerExceptionjava.awt.Graphics.drawImage() でスローされる。
>>
java.lang.IllegalArgumentExceptionjava.awt.Color コンストラクタでスローされる。
>>
java.security.AccessControlExceptionjava.lang.Threadstop()suspend()、または resume() メソッドでスローされる。
>>
java.lang.InstantiationException: コードとオブジェクトの両方ではなく、どちらか片方だけを指定する。
>>


症状
解決方法
署名付き .cab ファイルを .jar ファイルとして再パッケージ化すると、Sun JRE 内で実行されるアプレットが未署名になる。
>>
.cab ファイルから .jar ファイルにアップグレードした署名済みアプレットを Microsoft VM で実行するとセキュリティー例外がスローされる。
>>
クライアントの認証にブラウザからの証明書を使用できない
>>
CJK (Chinese-Japanese-Korean) フォントをボールドで表示すると読みにくくなる。
>>
HTTP URL と HTTPS URL の間のリダイレクトが行われない
>>

この一覧にない問題が発生した場合は、Java Upgrade Forum を参照してください。