「次世代のJavaPluginを有効にする」を自動でオフにする

  異なるバージョンのJREを複数インストールし、訳あって新しい方のバージョンをオフにした。(コントロールパネル→JavaJavaタブ→表示ボタン)

 

  すると、アプレットなどを実行時に「新しいバージョンのJavaがインストールされている・・・」云々のメッセージが必ず表示され、了解ボタンを押さないと進まない。邪魔なことこの上ない。

 

  コントロールパネル→Java→詳細タブ→Java Plug-in→次世代のJava Plug-inを有効にする チェックボックスをオフにするとメッセージが表示されなくなるのは見つけた。しかし、数百台のパソコンでそんな作業をする羽目になる。なんとか自動でオフにできるコマンドとかレジストリを探して、ログインスクリプトとかで一括処理できないと。

 

  レジストリを眺める。\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug^in\1.6.0_22(インストールしたバージョン)の中にUseNewJavaPluginという非常にドンぴしゃなキーを見つけた。値を1から0に変更すると、先述のコントロールパネルのJavaの設定もオフになる。完璧だ。喜び勇んで動作確認する。

 

  変わらない・・・。

 

  やはりいらぬメッセージが出る。コントロールパネルのJavaで手でオフにするとメッセージは出ないのに、レジストリの編集で同様の状態になってもメッセージが出る。散々試したがだめ。どうやら、コントロールパネルのJavaの方は、見た目だけで、裏で何かもっと変えているようだ。

 

  インターネットで調べる。かなり調べるが、大した情報がない。もうだめか。諦めかけた俺。ついに海外のサイトを探し出す。しょぼしょぼの目でなんとか英文を読んでいくと、同じようにコントロールパネルの設定で動作がわからないという同じような現象を質問している人がいる。そして、ついに見つけた。

 

  JREをインストールしたディレクトリ配下のbinの下にssvagent.exeというファイルがある。これをコマンドプロンプトで以下のように実行する。

 

  ssvagent.exe –high –jpisetup –old

 

これでコントロールパネルのJavaの設定の見た目だけでなく、実際の動作も不要なメッセージが出なくなった。末尾のオプションをoldからnewに変えると次世代のオプションは有効になる。

 

  どうも、次世代オプションのオン、オフによってDLLを使い分けてるらしく、オフの場合はssv.dll、オンの場合はjp2iexp.dllというDLLを使うようだ。コントロールパネルの方でオフにしたら、裏でレジストリのDLL登録をやり直してるのだろう。だから、UseNewJavaPluginの値を変えるだけではだめだったと思う。

 

備忘録でした。