コンテンツ このドキュメントには、以下の項目に関する情報が含まれます。最初のJ2SE 1.4.0 のリリースと J2SE 1.3 の間の非互換性については、Java 2 プラットフォームのバージョン 1.4.0 の互換性についてのドキュメントを参照してください。 Java プラットフォームのバージョン 1.3 と 1.2 の間の非互換性については、Java 2 プラットフォームのバージョン 1.3 の互換性についてのドキュメントを参照してください。 Java プラットフォームのバージョン 1.1 と 1.2 の間の非互換性については、Java 2 プラットフォームのバージョン 1.2 の互換性についてのドキュメントを参照してください。 Java プラットフォームのバージョン 1.0 と 1.1 の間の非互換性については、JDK 1.1 の互換性についてのドキュメントを参照してください。 最初に Java 言語仕様が発表されて以来 Java プログラミング言語の仕様に対して行われた変更の概要は、「Clarifications and Amendments」を参照してください。 後述の「J2SE v1.4.1 における非互換性」で説明されている項目を除き、Java 2 SDK (J2SDK), v1.4.1 は、J2SDK v1.4.0 に対してバイナリレベルの上位互換性があります。つまり、互換性のないことが示されている機能を除き、バージョン 1.4.0 のコンパイラで作成されたクラスファイルは、J2SDK v1.4.1 で正常に動作します。一般的な原則は次のとおりです。
初期のオブファスケータ (obfuscator) の中には、仮想マシンの仕様で規定されているクラスファイルの形式に違反するクラスファイルを生成するものがありました。そのような不適切な形式のクラスファイルは、旧バージョンの Java 仮想マシンでは動作する場合もありますが、J2SDK の仮想マシンでは動作しません。この問題を回避するには、適切な形式のクラスファイルを生成する新しいオブファスケータで、クラスファイルを生成し直してください。 後述の「バージョン 1.4 における非互換性」で説明されている項目を除き、J2SDK のバージョン 1.2、1.3、および 1.4 は、JDK ソフトウェアのバージョン 1.0 および 1.1 に対してソースレベルの上位互換性があります。つまり、互換性のないことが示されている機能を除き、バージョン 1.0 および 1.1 で定義されている言語機能および API を使って記述されたソースファイルは、J2SDK (すべてのバージョン) でコンパイルして実行できます。ソースレベルの下位互換性はサポートされていません。新しい言語機能または Java 2 プラットフォーム API を使っているソースファイルは、旧バージョンの Java プラットフォームでは使用できません。 一般的な原則は次のとおりです。
推奨されない API は、下位互換性のためだけにサポートされているメソッドやクラスです。推奨されない API を使った場合、コマンド行オプションで -nowarn を指定しないと、コンパイラが警告メッセージを出力します。現時点では、推奨されないメソッドやクラスをシステムから完全に削除する予定はありませんが、推奨されないメソッドとクラスを使わないようにプログラムを修正することをお勧めします。
sun.* パッケージに含まれる API の中には、変更されているものがあります。このパッケージの API は、開発者用のものではありません。開発者が sun.* パッケージからインポートする場合は、各自の責任において行なってください。詳細は、開発者が sun.* パッケージを呼び出すプログラムを記述すべきでない理由を参照してください。
Java 2 Platform (J2SE), Standard Edition, v1.4.0 と v1.4.1 における非互換性 |