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

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


このガイドでは、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 にアップグレードするには、次の手順に従います。

  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. 「設定」の下で、「ブラウザのデフォルトのJava」に対する「+」アイコンをクリックします。
  5. 次に示すように、選択対象ブラウザのチェックボックスにチェックマークを付けます。

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

  6. ブラウザで Sun JRE が実行されているかどうかを確認します。ブラウザで Sun JRE が実行されていれば、アプレット実行時に次のものが表示されます。
    • システムトレイに次のような Java アイコンが表示される。

    • システムトレイ内の Java アイコンのスクリーンショット

    • ブラウザウィンドウのアプレットロードボックスに次のような Java ロゴが表示される。

    • アプレットロードボックス内の Java ロゴのスクリーンショット

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

アプレットのテスト

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

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

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

Java コンソールの詳細については、「Java コンソール」ページを参照してください。

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

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

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

例外 解決方法
java.lang.ClassFormatError がスローされるスロー元: ClassLoader.
java.lang.ClassNotFoundException がスローされるスロー元: ClassLoader.
java.security.AccessControlExceptionjava.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.Colorjava.lang.IllegalArgumentException がスローされる。
java.security.AccessControlExceptionjava.lang.Threadstop()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 を参照してください。


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