• ベストアンサー

Java2はなぜJava1と互換でないの?

Java2のJDKをインストールした環境では、一部の古いJava1.xアプリが動かない、という話を聞きました。 (たとえばアクロバットリーダーforJava) 当初どんな環境でも動くことを第一目標に決めたJavaで、マイクロソフトと裁判までしたのに、 どうしてサンはこんな仕様に決めてしまったのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

一応は、互換性がとれるように努力しているのですけどねえ。 (って、私が努力している訳じゃないけど) 仕様としては、古いアプリが動かない「積極的な理由」はないのです。 ただいろいろ、理屈通りにいかないところがありまして。 たとえば、新しいクラスを追加したら、同じクラス名をすでに 使ってたときに困ってしまうとか。 「この仕様変だよ」と言われて「たしかに変だ。直そう」としたとき、 その変な仕様に依存しているプログラムが動かなくなるとか。 そういう細々としたところで互換性が完全にとれていないわけです。 理想と現実の違いといいますか。

altosax
質問者

お礼

ありがとうございます。 たまたま1.1.8までの間に、将来1.2で決められることを想定しきれず、勝手なクラス名をつけてしまったアプリだけが動作しなくなっただけの話しであって、一応サンの「仕様」としては完全互換を確保しているということですね? アクロバットの場合はアドビが勇み足してしまったということになりそうですね。

関連するQ&A