java编译器的目标版本"jsr14"与JDK7/8

Jin*_*won 10 java javac java-7

任何人都可以告诉我JDK7/8仍然可以使用jsr14目标选项javac吗?

说,

$ javac -source 1.5 -target jsr14 Hello.java
Run Code Online (Sandbox Code Playgroud)

Pet*_*ens 12

我们在OSGi中大量使用-jsr14,因为它允许我们在API中使用泛型但仍然部署在1.4环境中,这些环境在嵌入式环境中仍然很流行.不幸的是,他们使 JDK 7不能向后兼容Java 6和5.Javac 1.7忽略了JAR文件中实际存在的通用信息.幸运的是,在运行时没有问题,因为无论如何都会忽略此信息.并不是说这是一些无证的功能......

不幸的是,前线人员往往很少关注那些不能仅仅更新到最新和最伟大的人.猜猜Oracle真的不再关心嵌入式市场了.

我们现在可能需要发布两个JAR,一个用于嵌入式,一个用于JDK 7.糟透了.

这是我们提交的错误报告:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7078419


Joa*_*uer 4

最新的 OpenJDK 源包 ( openjdk-7-ea-src-b130-18_feb_2011.zip) 仍然在源 ( langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java) 中包含该标志,但它从未受到支持,因此依赖它是一个坏主意。

你为什么需要它?

  • @Jin:我会使用受支持的目标之一,并使用 [Retroweaver](http://retroweaver.sourceforge.net/) 或 [Retrotranslator](http://retrotranslator.sourceforge.net/) 之类的东西进行后期处理处理结果。 (4认同)