ASM ライブラリを使用してクラス ファイルを生成し、JVM を対象とするコンパイラを作成しています。JVM クラス ファイルにはバージョン番号フィールドがあり、そこに何を入れるべきかを考えています。
たまたま Java 1.7 を使用しているので、そのバージョンに対応する番号である 51 を入れるのは明らかな可能性です。しかし、私の知る限りでは、誰かが私のコンパイラを使って Java 1.6 などを対象とするプログラムを作成できないという理由はありません。
「これを使用しても安全です。バイトコード形式または JVM セマンティクスの最後の実際の変更をマークし、その後のすべてがそれをサポートします」と言えるような最小限/ベースラインのバージョン番号はありますか?
逆に、おそらく最良のオプションは、コンパイラが実行されている JVM のバージョン番号を取得することでしょうか? もしそうなら、実行時にアクセスできる多くの異なる Java バージョン プロパティのどれをこの目的に使用する必要がありますか?