• ベストアンサー

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

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

  • Java
  • 回答数1
  • ありがとう数1

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

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

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

altosax
質問者

お礼

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

関連するQ&A

  • Java2とは何ですか?

    Java2とは何ですか? 下記HPによると http://e-words.jp/a/Java2.html 『Sun Microsystems社のプログラミング言語「Java」の第2版。Java 2はJDK 1.2と呼ばれていたものの正式名称で、SunによるJava 2プラットフォーム対応のプログラミング環境や実行環境も含む。』 とあります。1.2以前が第1版ということなんでしょうか? なんか2の意味がよくわからんなーと思っています。 1.2の2の部分の2ではなくそれ以外にバージョンがあって2ということなんですよね?タブン。 Sunの資料を見たところ、1.5系ではまだ、J2SE 5.0と表記されたりしているようですが、1.6と1.7に関する記述では、Java SE6、Java SE7と「2」が完全に消えていました。 今後は「2」はきえるのかなーなどと思っています。 この辺のことについてお詳しい方よろしくお願いします。 質問 (1)Java2の2はどこから来ているのか。どういう意味合いでつけたのか。 (2)いつまでが1だったのか。(時期やバージョンなど) (3)1.6以降は2は使われなくなるのか

    • ベストアンサー
    • Java
  • java を読み込めない

     パソコンをVISTAに変えてから、サイトのJAVA画像が読み込めません。ペケマークが、左上に出るだけです。JAVAも最新のものに再インストールしたり、IEのツール設定もしたり、JAVAのコントールパネルも設定しました。  いろんなサイトやら、サンのJAVAのトラブルページを見てやってもも出来ません。一体どうしたらいいのでしょうか?マイクロソフトとサンの裁判のせいらしいのですが。。

  • Java環境の下準備で困っています。

    「アプリ作成でやさしく身につく徹底入門 新基準Javaプログラミング」という参考書でJavaの勉強を始めましたが、出だしの開発環境と実行環境の準備でいきなりつまづいてしまいました。 参考書によると、http://java.sun.com/javase/ja/6/download.htmlから 「JDK 6u1」 というものをダウンロードするように書かれているのですが、 書かれてあるページの何処を探しても同じものはなく、似たようなものだと以下の 「Java SE Development Kit with JavaFX (JDK 6u25 / FX 1.3.1)」 というものが有ります。 JDKって"Java SE Development Kit"という意味ですよね、ただ、with JavaFXというのが何か解りません。 参考書に沿って勉強していきたいのですが、「JDK 6u1」に該当するものはどれなのでしょうか? 因みに使用しているPCは MacBookPro 10.6.8で ターミナルは2.1.2です。 最初はEclips等使わず、miエディタとターミナルのみを使って学習していき、 慣れてきたらEclipsを使用していこうと思っております。 せっかく参考書を買ってきたのに全く進まず困っています。 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • JAVAのJDK6/7の切り替え

    64ビットのWindows8のマシンにjdk-6u21-windows-x64.exeとjdk-7u45-windows-x64.exeの2つ をインストールした状態で、環境変数で、 JAVA_HOME6 : C:\Program Files\Java\jdk1.6.0_21 JAVA_HOME7 : C:\Program Files\Java\jdk1.7.0_45 JAVA_HOME : %JAVA_HOME6% PATH : %JAVA_HOME%\bin; のようにして6と7を切り替えられるようにして使いたいのですが、現在上記の設定で、 >path を実行すると6のパスを指しているのですが、 >java -version を実行すると常に7を表示します。 この状態で、コマンドプロンプトからコマンドを実行したり、Eclipseを立ち上げた場合、実際 どちらのものが使われることになるのでしょうか? また、ひとつのマシンで上記のようにJavaを切り替えて使うことは可能なのでしょうか?

    • ベストアンサー
    • Java
  • Javaを始めようと思いますがどうやって始めたらよいかわかりません

    初めてのjavaで検索し、 http://itpro.nikkeibp.co.jp/article/lecture/20070130/260066/ このサイトを見つけ、リンク先 http://java.sun.com/j2se/1.5.0/ja/download.html から JDK 5.0 Update 14(Windows Platform - Java Development Kit 5.0 Update 14)Windows Offline Installation, Multi-language をダウンロードしてインストールしましたが、 "\Program Files\Java\jdk1.5.0_10\bin\javac" のようなパスは存在せず、 "\Program Files\Java\jre1.5.0_・・・" というちょっと違うパスしかありません。 Javaを最初から始めるにはどうしたらよいでしょうか?

    • ベストアンサー
    • Java
  • Fedora8のjavaパッケージについて

    いつも参考にさせて頂いています。 Fedora8をインストールし、jdk1.5.0_15をインストールしたのですが、# rpm -aq | grep java でパッケージを確認したところ、下記のように表示されました。 sun-javadb-client-10.3.1-4.1 tzdata-java-2007h-1.fc8 java_cup-0.10-0.k.6jpp.1 java-1.7.0-icedtea-plugin-1.7.0.0-0.19.b21.snapshot.fc8 sun-javadb-common-10.3.1-4.1 sun-javadb-docs-10.3.1-4.1 java-1.5.0-gcj-1.5.0.0-17.fc8 sun-javadb-core-10.3.1-4.1 sun-javadb-javadoc-10.3.1-4.1 java-1.7.0-icedtea-1.7.0.0-0.19.b21.snapshot.fc8 sun-javadb-demo-10.3.1-4.1 # java -version とコマンドすると、 java version "1.7.0" IcedTea Runtime Environment (build 1.7.0-b21) IcedTea Client VM (build 1.7.0-b21, mixed mode) と表示されます。 私はJDK1.5.0_15を使いたいのですが、何かに上書きされている? しかも一体どれが必要で何のためのパッケージなのかよくわからず困っています。 必要のないものはアンインストールしたいのですが… JDK1.5を使用する場合、 「java-1.5.0-gcj-1.5.0.0-17.fc8」 以外は必要ないのでしょうか? どうか宜しくお願いいたします。

  • Javaの開発環境

    これからJavaでプログラムを始めようと思ってます。 まず、まずは開発環境をと思い、 SUNのホームページを見たのですが Javaの開発環境が「JDK1.16」「SDK1.3」など色々あり、 どれを使用したら良いのかよく解りません。 それにこの「JDKとSDK」の違いって何なのでしょうか? 是非ご教授下さい。

  • javaのsslプログラムについて質問です

    以下のサイトにありますjavaのプログラムを実行したいのですが https://github.com/Kanatoko/POODLE 実行環境はどのようなものを想定しているプログラムなのでしょうか 実際にローカルにssl3.0のサーバを立ててその環境で実行するプログラムなのか JDKなどjavaの環境があれば実行できるプログラムなのか、、など 私が実行した結果以下のエラーを吐きましてお手上げ状態です [java] Exception in thread "main" java.net.BindException: アドレスは既に使 用中です [java] at java.net.PlainSocketImpl.socketBind(Native Method) [java] at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) [java] at java.net.ServerSocket.bind(ServerSocket.java:376) [java] at java.net.ServerSocket.<init>(ServerSocket.java:237) [java] at javax.net.ssl.SSLServerSocket.<init>(SSLServerSocket.java:181) [java] at sun.security.ssl.SSLServerSocketImpl.<init>(SSLServerSocketImpl.java:134) [java] at sun.security.ssl.SSLServerSocketFactoryImpl.createServerSocket(SSLServerSocketFactoryImpl.java:91) [java] at MPoodle.main(MPoodle.java:39) 環境は仮想環境で centos JDK1.7 apache https 443 ssl3.0のみうけつける 上で言いました通り実行環境はなんなのでしょうか、、javaは全くの素人でして ソケットプログラミングで、portを443と1443などどうなっているのかもさっぱりでございます。。。 どなたかご教授お願いしたします。

  • 旧バージョンのJAVAのダウンロードは?

    1.6.0_24以前のバージョンを使いたいと思っています。 http://java.sun.com/products/archive/ のアドレスから、Java SE 6→Java SE Development Kit 6u24→jdk-6u24-windows-x64.exeと進み、ログイン→ダウンロード→実行をしました。 しかし、「有効なWIN32アプリケーションではありません」とエラーが出ます。 解決方法を教えて下さい。

  • FreeBSDでサーバーサイドJavaの実行環境は存在しますか?

     初歩的な質問ですいません。 FreeBSD版のサーバーサイドJavaの実行環境(JVM)は存在しますか? SunのJava2EEと互換しているものです。 Sunとライセンス契約をした FreeBSD財団からリリースされている JDK1.3.1 JRE1.3.1 (↑これらがJava2SEなのかJava2EEなのかすら分かりません) は存在するようですが・・・ http://www.freebsd.org/ja/java/ Tomcatなどが動作する FreeBSD版のサーバーサイドJavaの実行環境(JVM)は存在しますか?  どなたか、よろしくお願いいたします。 関連Webサイトが英文ばかりで・・・(笑)

専門家に質問してみよう