jsr14
JDK7/8 でもターゲット オプションをjavac
引き続き使用できると誰か教えてもらえますか?
言う、
$ javac -source 1.5 -target jsr14 Hello.java
OSGi では -jsr14 を多用しています。これにより、API でジェネリックを使用できるようになりますが、1.4 環境にもデプロイできます。残念ながら、 JDK 7はJava 6 および 5 と下位互換性がありません。Javac 1.7 は、JAR ファイルに実際に存在する一般的な情報を無視します。幸いなことに、この情報はとにかく無視されるため、実行時に問題はありません。そして、これが文書化されていない機能であるかのようではありません...
残念なことに、最前線の人々は、最新かつ最高のものに更新することができない人々にほとんど関心を持っていないことがよくあります. オラクルは組み込み市場を本当に気にかけていないと思います。
組み込み用と JDK 7 用の 2 つの JAR を出荷する必要がありそうです。
これは私たちが提出したバグレポートです: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7078419
最新の OpenJDK ソース バンドル ( openjdk-7-ea-src-b130-18_feb_2011.zip
) にはまだソース ( ) にフラグが含まれていますが、langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java
サポートされていないため、これに依存することはお勧めできません。
なぜあなたはそれが必要なのですか?
このフラグは、1.5 のベータ段階から放棄されています。ジェネリックの仕様が確定していない間に、1.5 ベータ コンパイラがデフォルトでジェネリックのチェック/解析をバイパスできるようにするためだけに含まれていました。1.5 がリリースされると、そのフラグは無意味になりました。新しいコンパイラ バージョンでは、エラーが発生してもエラーが発生しない可能性がありますが、ほとんどの場合、暗黙のうちに無視されます。