Java アップグレードガイド:
|
このガイドでは、Java の Microsoft 仮想マシン (VM) から Sun JRE にアプレットをアップグレードする理由と方法を説明します。98% のケースでは、アプレットを変更せずに Sun JRE で実行できます。残り 2% のために、移行に関するヒントを説明します。アップグレードによって、さまざまな利点が得られます。Microsoft VM は初期の、1997 年におけるバージョン 1.1 の Java テクノロジに基づいているためです。Sun Microsystems による最新で、標準互換のバージョンは 1.4.2 です。2003 年にリリースされ、以前のバージョンに比べて多くの機能が拡張されています。
Microsoft VM は 5 年以上前の Java 1.1 テクノロジが基になっており、時代遅れであることは明白です。一方、Sun Microsystems による VM は 1.4.2 Java Runtime Environment (JRE) の一部で、完全に標準互換であり、最新です。これが、Java アプレットやアプリケーションを Sun JRE で実行するようにアップグレードする大きな理由の 1 つです。理由は他にもあります。Sun JRE は数百万というコピーがすでにダウンロードされ、配備されています。また、Sun JRE を搭載したコンピュータもまもなく数百万台が出荷される予定です。今がアップグレードする時期です。
もう 1 つの理由として、2004 年 9 月以降、Microsoft では自社の製品で Java の実装のサポートまたは提供を行わなくなります。すでに最新のオペレーティングシステムの Internet Explorer Web ブラウザには Java テクノロジを搭載しなくなっています。これにより、2 つの重要な影響が予測されます。
Microsoft では Java アプレットやアプリケーションを J# または C# に移行するように主張していますが、どちらの方法にもクロスプラットフォーム対応機能が提供されていません。J# と C# が実行できるのは Microsoft Windows プラットフォームだけです。
Sun JRE へのアップグレードの手順を示します。
ほとんどのアプレットは Sun JRE で問題なく実行できますが、テストすることを常にお勧めします。問題が検出されたら、すぐに解決できます。アプレットをアップグレードすれば、Java プラットフォームの強固でセキュリティ保護された、クロスプラットフォーム標準互換のバージョン上でアプレットを実行できます。
Sun JRE でアプレットが問題なく動作することを確認したら、ユーザに Sun JRE を配備する最適な方法を検討します。「Sun JRE のインターネット/イントラネット配備」を参照してください。
Sun JRE をテスト用コンピュータにインストールしていない場合は、次のリンクをクリックして入手します。
アプレットをテストする前に、ブラウザで Sun JRE を実行していることを確認する必要があります。
Windows のコントロールパネル ([スタート] > [設定] > [コントロール パネル]) を開き、Java Plug-in という名前のコーヒーカップのアイコンをダブルクリックして、Java Plug-in コントロールパネルを起動します。表示されたら [ブラウザ] タブを選択します。次のようになります。
使用しているブラウザのチェックボックスが選択されていることを確認します。
次に、ブラウザで Sun JRE を実行していることを確認します。実行している場合、次のようになります。
システムトレイの Java アイコン
グレーボックスの Java ロゴ
注: Java Plug-in コントロールパネル ([基本] タブ) の [コンソールを表示] を選択した場合は、Java コンソールが表示され、Java のバージョン番号が示されます (次のセクションで説明します)。バージョン番号は、ブラウザで使用中の Sun JRE を表します。
アプレットを実行してテストします。アプレット用に標準的なテストセットを用意している場合は、そのテストを使用してアプレットを実行します。
互換性に問題がある場合は、Java コンソールで詳細を確認します。Java コンソールを次に示します。
Java コンソールの詳細については、http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/console.html を参照してください。
発生が予想される潜在的な問題点を、症状別に一覧にします。
ClassFormatError
が ClassLoader
でスローされる。同じアプレットが Microsoft VM では実行できるClassNotFoundException
が ClassLoader
でスローされる。同じアプレットが Microsoft VM では実行できる.cab
ファイルを .jar
ファイルとして再パッケージすると、Sun JRE で実行中のアプレットが未署名として扱われる。.cab
ファイルとしてパッケージされた同じアプレットは、Microsoft VM では署名済みとして実行される.cab
ファイルから .jar
ファイルに署名済みアプレットをアップグレードすると、そのアプレットは Microsoft VM で動作しなくなる。Sun JRE では正常に実行されるAccessControlException
が Introspector.setBeanInfoSearchPath()
の実行中にスローされる。同じアプレットが Microsoft VM では実行できるClassNotFoundException
が com.ms.security
パッケージの ClassLoader
でスローされる。同じアプレットが Microsoft VM では実行できるClassNotFoundException
が com.ms.*
パッケージの ClassLoader
でスローされる。同じアプレットが Microsoft VM では実行できるjava.awt.Component
から継承されたメソッドが同期化されすぎるとデッドロックが発生する場合がある。同じアプレットが Microsoft VM では実行できるClassCastException
が AWT ディスパッチイベントスレッドからスローされる。同じアプレットが Microsoft VM では実行できるApplet.start()
または Applet.stop()
が呼び出されると、NullPointerException
がスレッドからスローされる。同じアプレットが Microsoft VM では実行できるNullPointerException
が java.awt.Graphics.drawString()
でスローされる。同じアプレットが Microsoft VM では実行できるNullPointerException
が java.awt.Graphics.drawImage()
でスローされる。同じアプレットが Microsoft VM では実行できるIllegalArgumentException
が java.awt.Color
コンストラクタでスローされる。同じアプレットが Microsoft VM では実行できるAccessControlException
が java.lang.Thread
の stop()
、suspend()
、または resume()
でスローされる。同じアプレットが Microsoft VM では実行できるInstantiationException
がスローされる。同じアプレットが Microsoft VM では実行できるこの一覧にない問題が発生した場合は、Java Upgrade Forum を参照してください。