Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Compatibility
 

SDK ドキュメント

英語版

コンテンツ

このドキュメントには、以下の項目に関する情報が含まれます。

最初の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 で正常に動作します。

一般的な原則は次のとおりです。

  • ファミリ (1.2.x) 内の保守リリース (1.2.1、1.2.2 など) の間では、バイナリレベルの上位互換性および下位互換性が保証される

  • 機能リリース (1.3.0、1.4.0 など) の間では、バイナリレベルの上位互換性は保証されるが、下位互換性は保証されない場合がある

初期のオブファスケータ (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 は、下位互換性のためだけにサポートされているメソッドやクラスです。推奨されない API を使った場合、コマンド行オプションで -nowarn を指定しないと、コンパイラが警告メッセージを出力します。現時点では、推奨されないメソッドやクラスをシステムから完全に削除する予定はありませんが、推奨されないメソッドとクラスを使わないようにプログラムを修正することをお勧めします。

sun.* パッケージに含まれる API の中には、変更されているものがあります。このパッケージの API は、開発者用のものではありません。開発者が sun.* パッケージからインポートする場合は、各自の責任において行なってください。詳細は、開発者が sun.* パッケージを呼び出すプログラムを記述すべきでない理由を参照してください。

Java 2 Platform (J2SE), Standard Edition, v1.4.0 と v1.4.1 における非互換性

J2SE 1.4.1 には、Java 2 プラットフォームの旧バージョンとの高い互換性があります。このため、既存の 1.4.0 プログラムの多くは J2SE 1.4.1 でもそのまま実行できます。J2SE 1.4.0 と J2SE 1.4.1 の互換性についての問題点は、現時点では見つかっていません。