2種類のJava VMがあるのはなぜ?

私のパソコンには、マイクロソフトのJava VMが入っています。一方、サン・マイクロシステムズも、自社サイトでJava VMを提供しています。これらの違いは何でしょうか。

現在、さまざまな種類のパソコンが接続するインターネットで、標準のプログラム言語の一つといえるのが「Java」です。Java言語は、WindowsやMacintosh、Linuxなどあらゆる環境で動作するプログラムが作成できるのが特徴です。こうした「マルチプラットフォーム環境」を実現するのが、Java VM(Virtual Machine)というソフトです。

 Java VMはいわば“翻訳機”。Webブラウザー上で動作するJavaプログラム(アプレット)を、Java VMがプログラムとパソコンの間に入り、パソコン固有の機械語に変換します。アプレットは、機種に依存しない共通の関数やデータで構成されるため、それぞれのOS向けのJava VMを用意すれば、どのパソコンでも動作できます。

 ご質問にあるように、パソコン用のJava VMは2種類あります。本家は、サン・マイクロシステムズが開発したJava VM。もう一つはマイクロソフトのMicrosoft VMで、同社がサンからライセンスを受けて、1997年に開発したものです。Microsoft VMは、当時の標準ブラウザーであるInternet Explorer(IE)4.0に搭載され、Javaはまたたく間に普及しました。

 ところが、Microsoft VMが普及するにつれて、取りざたされるようになったのが、本家のJava VMとの互換性です。Javaは、マルチプラットフォームという利点を持つ半面、実行速度が遅いという欠点があります。Microsoft VMでは、Java VMを独自に拡張して処理速度を向上させました。このため、Microsoft VMに対応したアプレットを使ったサイトは、Java VMだと正常に動作しない可能性があるのです。

●Microsoft VMしか動かないことも
Microsoft VMは、独自に規格を拡張している。拡張部分に依存するプログラムがあると、サン・マイクロシステムズのJava VMでは不具合が起こる可能性がある

 97年、開発元であるサンは、Javaの互換性が損なわれたとして、マイクロソフトを訴えました。結局、その訴訟は2004年に和解。マイクロソフトは、Microsoft VMの開発・提供を打ち切ったのです。現在、通常の方法でMicrosoft VMを入手することはできません。

 Microsoft VMのサポートは2007年12月に終了し、これ以降はセキュリティホールがあっても修復されません。さらにJava VMが一本化されたことから、今後はMicrosoft VMに特化したアプレットは減少すると思われます。

 98年に登場したJava後継のJava2(入手先は、http://www.java.com/ja/download/download_the_latest.jsp)では、Java VMの実行速度が向上しています。インストール後も削除可能なので、試してはいかがでしょうか。IEでは、両者を共存させることもできます。この場合、アプレットは、Java VMが優先的に処理しますが、設定でMicrosoft VMに切り替えられます。

 IE 5以降の場合、インストール後に、「ツール」メニューの「インターネット オプション」を開き「詳細設定」タブを選びます。「Java(Sun)」の項目にある「<Applet>にJava〜」のチェックをはずし、下の「Microsoft VM」の項目にある「Java JIT〜」にチェックを入れて[OK]ボタンを押します。IEをいったん閉じて再度起動すれば、Microsoft VMが有効になります。

●Java VMの共存は可能
IEの「ツール」メニューから「インターネット オプション」を開き「詳細設定」タブを選ぶと、組み込まれているJava VMの種類が分かる