FirefoxでJavaが実行できないと思ったら古いままになっていた。

FirefoxJavaアプレットを使っているサイトを見たら

このコンテンツを表示するにはプラグインが必要です。

と言われることに気がついた。

Javaなら既に入ってるはずだがと思いつつ「プラグインをインストール」をクリックし指示に従うと、やはり既にJavaはインストールされていると言われる。Javaは今まで何度かアップデートしたし、コントロールパネルのJavaの項目にも最新バージョンがインストールされている旨が表示されている。

そこで、あちこち引いたり押したりしていると、IEの起動時にUACのプロンプトが表示されることに気がついた。どうもJavaに関連がありそうなファイル名が表示されているので、試しに許可をしてみると変化があった。まず前述の「このコンテンツを表示するにはプラグインが必要です。」というメッセージが「このプラグインは無効にされています。」に変わった。さらにFirefoxのプラグインマネージャーの一覧に「Java(TM) Platform SE7 U5 10.5.1.255」という新しい項目ができ、さらにその横に「Java(TM) Platform SE 7 U5 はセキュリティまたは安定性に問題があります。」と書かれるようになった。何でIEが関係あるのか意味がわからないが、手掛かりが見えてきた。

検索したニュース記事等を参考にすると、どうもFirefoxが気を利かせて古いJavaプラットフォームを無効にしたようだ。前述のU5というのは、たぶんUpdate 5のことだろう。古いバージョンだ。しかし、何度も書くようだが、Javaコントロール・パネルでは既に新しいバージョンになっている。「今すぐ更新ボタン」を押しても「このシステムはすでに最新のJava(TM)プラットフォームになっています」と言われるだけだ。なんか嫌な予感がする。

とういわけで、わけがわからない時は、一旦アンインストールしてからインストールしてみるに限る。コントロールパネルからプログラムの機能を選び、Javaを検索すると、Java 7 Update 10とJava FX 2.1.1という項目の2つがある。よくわからないので、両方アンインストールする。次に「ファイル名:*java*」で検索し、Java関連の設定ファイル(なぜかSunとOracleの2つがある)や、残していったファイルを削除する。さらにJava Deployment Toolkitがそのままになっているので、これまたhttp://mozilla-remix.seesaa.net/article/291393303.htmlを参考に削除する。その上でJavaをもう一度インストールしてみる。

結果、この方法でJavaアプレットが動くようになったのだが、なんというかさ、Firefoxが悪いのかOracleが悪いのかわからないけど、セキュリティのことなんだからさ、ちゃんとして欲しいよね。幸いにもNoScriptを使っていたから変なJavaアプレットを読み込んでしまった可能性は低いだろうけどさ。多層防御の重要性を少し実感した。