システム管理者の種類にもよりますが、クライアントPCにJavaをインストールすることも仕事の一部である場合があります。PCでJavaが必要な理由も色々ありますが、ブラウザ上で業務で必要なJavaアプレットを動作させることが目的のこともあるでしょう。

何らかの理由で、Javaアプレットが動作しなくなり、Javaをインストールしなおしても改善しないことが発生します。以下の状況で発生しうると考えられます。
  1. 64ビット版Windows7で、Internet Explorer は9以前
  2. 32ビット・64ビット両方のJavaをインストール
  3. 32ビットのJavaコントロールパネルで「ブラウザでJavaコンテンツを有効にする」がチェックされていない
  4. Internet Explorerは32ビット版を使用
この問題を理解するには、以下の知識が必要になります。
  1. Windows7には32ビット版と64ビット版がある。
  2. Javaには32ビット版と64ビット版がある。
  3. Internet Explorer 9 までは 32ビット版と64ビット版があり、64ビット版のWindows7では両方が利用できる。
  4. 64ビット版のWindows7には、32ビット版と64ビット版両方のJavaをインストールできる。
  5. 32ビット版のJavaをインストールすると32ビット版のInternet Explorer で Javaアプレットが実行できるようになる。
  6. 64ビット版のJavaをインストールすると64ビット版のInternet Explorer で Javaアプレットが実行できるようになる。
  7. インターネットショートカットで実行できる(すなわち「既定のブラウザー」となっている)Internet Explorerは32ビット版であり、64ビット版は実行できない。

Javaアプレットの利用を制御するにはいわゆる「Javaコントロールパネル」を使用します。
Javaコントロールパネルを起動し、「セキュリティ」タブをクリックすると「ブラウザでJavaコンテンツを有効にする」というチェック項目(初期値はチェック状態である)があり、これをオフにするとJavaアプレットを利用できなくなります。

同時にInternet Explorerの「アドオンの管理」(「ツール」→「インターネットオプション」で「プログラム」タブを選択)でJava Plug-In SSV Helper および Java Plug-In 2 SSV Helper が非表示となり、Internet Explorer からは操作できなくなります。

問題は、両方のJavaがあるときに、32ビット側の設定にアクセスできない(普通の人は)ことです。
  1. 64ビット版のJavaをインストールすると、「コントロールパネル」に「Java」という項目ができる。 
  2. 32ビット版のJavaをインストールすると、「コントロールパネル」に「Java(32ビット)」という項目ができる。
  3. 両方のJavaがインストールされているときは、「コントロールパネル」に「Java」のみが表示される。
  4. 「スタート」メニューからも、コントロールパネルのJava相当の機能が利用できるが、両方のJavaがある環境では64ビット版が優先される。
  5. Javaコントロールパネルは、C:\Program Files\Java\jre7\bin\javacpl.exe が64ビット版、C:\Program Files (x86)\Java\jre7\bin\javacpl.exe が32ビット版。
  6. 両方のJavaがインストールされている環境で、32ビット版のJavaコントロールパネルを起動するには、直接パスを起動する必要がある。
  7. 「ブラウザでJavaコンテンツを有効にする」チェックボックスは基本的にはどちら側のJavaコントロールパネルで操作しても、もう一方の設定が連動されるが、例外的な動きもあり、一方ではチェックボックスが選択、他方では非選択にできる。
  • 32ビット版のJavaコントロールパネルで、チェックボックスを非選択にし「OK」をクリックする。
  • 64ビット版のJavaコントロールパネルを開き、チェックボックスを選択し「OK」をクリックする。このとき、下図のように「(このユーザーに対してのみ無効)」という意味不明の注釈が現れることが特徴。
  • 32ビット版では、「ブラウザでJavaコンテンツを有効にする」チェックボックスは非選択のままになる。javacpl

両方が入っている状況下で、システム管理者の助けを求める人が32ビット版のJavaコントロールパネルを見つけることはないと思いますが、以下のシナリオはどうでしょうか?

  1. 最初は、32ビット版Javaだけがあり、何らかの理由で「ブラウザでJavaコンテンツを有効にする」チェックボックスが外れた。
  2. 問題解決のためJavaを最新版にアップグレードしようとして、64ビット版の Internet Explorer を起動して java.com サイトから64ビット版Javaをダウンロードしインストール。
  3. 64ビット版では、インストール時にJavaアプレットは有効になっているので、java.com サイトで提供している「バージョンの確認」用Javaアプレットは問題なく実行できる。
  4. 業務アプリはインターネットショートカットになっており、32ビット版のInternet Explorer が起動する。
  5. 32ビットのJava側はJavaアプレットが依然として有効でないため、問題は解決しない。
  6. Javaコントロールパネルを見ても、今や64ビット版Javaの設定しか見えないので、32ビット版のみの問題が解決できない。
 長くなりましたが、Javaアプレットと戦っているシステム管理者の役に少しは立てば幸いです。