Java6の最終正式版は2013年2月19日にリリースされる。その日以降、Java SE 6のランタイムとSDKの両方に対する、全ての新しいセキュリティアップデート、パッチ、修正はMy Oracle Supportを通してのみ利用できる。つまり、Oracleの商用ライセンスを持つユーザだけが手に入れられる。
このことを考慮して、2012年の終わりにOracleは自動アップデートによりJava SE 6をJava SE 7に自動的に置き換え始めた。Oracleは次のように告知した。
2012年12月に、Windows 32-bitのJava Runtime Environment (JRE) ユーザのJRE 6をJRE 7に自動アップデートし始めます。
Java自動アップデート機構は、最新のセキュリティ修正によって、Javaユーザに最新の環境を提供するために作られています。この目的を達成するため、Java自動アップデートを利用しているWindowsユーザは、JRE 6がJRE 7に更新されるでしょう。
Oracleは、2012年12月に、サンプルのユーザに対して、JRE 6からJRE 7への自動アップデートを始め、自動アップデートの機構やユーザエクスペリエンス、シームレスな移行について評価します。それから、すべてのWindows 32-bitユーザのJRE 6をJRE 7へ自動アップデートし始めます。Java 7は、2013年2月に完成するJavaアップデートリリース、Java SE 7 Update 11 (Java SE 7u11)です。
この動きは、何かしら問題が多いことが明らかになってきた。Java/NETを解釈するベンダ、JNBridgeのCTOであるWayne Citrin氏は、ブログの投稿で次のように述べた。
これは、まったく驚くべきことです。Oracleは、大量に報告されたセキュリティ問題を修正するために、Javaの最新バージョンであるJava 7をアップデートするだけでなく、まったく別の製品を完全に削除するのです。 えぇ、Java 6はJava 7とは別の製品です。両方ともインストールしておくことができますし、多くのユーザがJava 6とJava 7をマシンにインストールしています。Java 6で動くアプリケーションもあれば、Java 7で動くものもあるのです。これらの依存関係は、通常、ハードコーディングされていて、別々のファイルロケーションが正確に指定されています。Microsoftが.NET 4.0のアップデートで.NET 2.0を削除することを想像できますか? これは、それと同じくらい深刻なことです。
さらに悪いことに、マシンにJava 6だけインストールしていても、Java 6のインストールをJava 7に置き換えるのは、自分自身の責任であるように見えます。
その結果、Citrin氏は「Javaの自動アップデートをオフにするようによく検討すべきた」と述べている。
InfoQはCitrin氏の立場を明らかにするために話を聞いた。「実は、ユーザができるもっとも良いことは、ブラウザプラグインを最新のJava 7にアップデートすることだと思っています。」「または、単にブラウザでJavaを無効にすることです。」とCitrin氏は語った。また、Citrin氏は、Oracleが現在の状況をどのように扱うかについていろいろな提案を示した。
a. 両方インストールするのではなく、Java 7がJava 6の場所にインストールされるように変更する。この方法では、ユーザが気付かないぐらい、以前のバージョンに対する厳密な下位互換性が求められます。おそらく、今回は良い選択肢ではありませんが、最も良い長期的な回答でしょう。
b. 少なくとももう少しだけJava 6のアップデートを提供し続ける。先延ばしにしても、結局、問題は解決しません。
c. Java 7のアップデートの一部として、JavaブラウザプラグインがJava 7でないか確認する。もしJava 7でなかったら、変更する。これがおそらくもっとも良い解決策でしょう。ほとんどの攻撃はブラウザを通してやってきますし、ほとんどの人はJava 7に変えても気が付かないでしょう。そのため、何かを壊すことはありません。
Oracleは、実は、アップデートプロセスについてかなり用心していた。 エンタープライズユーザにとってもっとも重要なのは、Java自動アップデートプロセスがユーザのWindowsマシンで、最新のJavaのみ更新することだ。複数のJavaのバージョンをインストールしている場合は、その中で最新のJavaのみ置き換えられる。さらに、企業がユーザに代わってJavaのバージョンを管理するところでは、自動アップデートは通常オフになっていて、影響を受けないだろう。つまり、Citrin氏によると、エンタープライズの顧客は自動アップデートの影響を受けないようにする一方で、「私たちが話をした独立系ソフトベンダは、何人もの顧客から問題を報告されている」のだ。
Javaのサイレント自動アップデートの課題は、先週、セキュリティ電話会議でも議論された。これは、もちろんサイレントアップデートではないが、Askツールバーと同様に、ユーザはインストーラで読みもせずにクリックすることがある。これは、私たちがCitrin氏と話した時にも指摘されたことだ。そして、これに関連して、自動アップデートに関するDonald Smith氏のコメントを見るのは興味深い。
ここでの課題は、もちろん、それが新しく出た機能ならば、それ以前の長い歴史を持つ収益構造があったことです。そのため、多くの人たちが「これが起きないようにするにはどうしたらいい?」と言い出すのです。
Javaはますます有害ソフトとウィルス作成者のターゲットになっているので、ユーザが最新の状態に更新するようにするのは、Oracleにとって確かに挑戦だと言える。
InfoQはこの話を明らかにしようとOracleに連絡を取ったが、コメントは得られなかった。