Java 2 SDK Solaris 版は、以降に示す非互換の場合を除き、JDK ソフトウェアバージョン 1.0 および 1.1 とバイナリレベルで上位互換性があります。したがって、バージョン 1.0 か 1.1 のコンパイラで構築したクラスファイルは、以降に示す非互換の場合を除き、Java 2 SDK Solaris 版で正しく動作します。
javac コンパイラの -target 1.2 コマンド行オプションを使用しなければ、一般にはバイナリレベルでの下位互換性がサポートされます。ただし、保証はされません。したがって、Java 2 SDK Solaris 版のコンパイラで構築したクラスファイルは、Java プラットフォームのバージョン 1.0 か 1.1 で定義されている API だけを使用している限り、一般には Java Virtual Machine の 1.0 や 1.1 バージョンで正しく動作します。ただし、この下位互換性は完全にテストされているわけではないので、保証はされません。クラスファイルが新しい Java 2 SDK Solaris 版の API を使用している場合、これらのファイルは以前のプラットフォームでは当然ながら動作しません。
ファミリ (JDK 1.1 ベースのリリース) 内の保守リリース (JDK 1.1.1、1.1.2 など) では、相互の上位と下位への互換性がバイナリレベルで維持されます。
ファミリ (JDK 1. ベースのリリース) 内の機能リリース (JDK 1.1、1.2 など) では、上位互換性はバイナリレベルで維持されますが、バイナリレベルの下位互換性は必ずしも維持されません。早期の Java バイトコードオブファスケータの中には、Java Virtual Machine 仕様 (『Java Virtual Machine Specification, Second Edition』) で指定されたクラスファイル形式に合わないクラスファイルを生成するものがありました。このようなクラスファイルは、以前のバージョンの VM で動作していたとしても、Java 2 SDK Solaris 版の VM では動作しません。これを解決するには、新しいオブファスケータを使って正しい形式のクラスファイルを再生成する必要があります。