javac -source -targetの動作を調べた。
普通のソースの場合
1.2 | 1.3 | 1.4 | 1.5 | 1.6 | |
---|---|---|---|---|---|
1.2 | 46.0 | 47.0 | 48.0 | 49.0 | 50.0 |
1.3 | × | 47.0 | 48.0 | 49.0 | 50.0 |
1.4 | × | × | 48.0 | 49.0 | 50.0 |
1.5 | × | × | × | 49.0 | 50.0 |
1.6 | × | × | × | × | 50.0 |
左がsourceで、上がtarget。
値は、クラスファイルのマジックナンバー(CAFEBABE)の後に埋め込まれたのバージョン番号。
1.2準拠のソースから、1.6のクラスファイルを作成できるが、1.6のソースから、1.5以下のクラスファイルを作成できない。1.6の新機能を使用したソースを、5.0の実行環境で動かすことはできないのが当然。