谁能告诉我 JDK7/8 的jsr14
目标选项javac
仍然可用吗?
说,
$ javac -source 1.5 -target jsr14 Hello.java
我们在 OSGi 中大量使用 -jsr14,因为它允许我们在 API 中使用泛型,但仍然部署在 1.4 环境中,这些环境在嵌入式中仍然很流行。不幸的是,它们使JDK 7 不能向后兼容 Java 6 和 5。Javac 1.7 忽略了 JAR 文件中实际存在的通用信息。幸运的是,在运行时没有问题,因为无论如何都会忽略此信息。而且这似乎不是一些未记录的功能...
不幸的是,前线的人通常很少关心那些不能更新到最新和最伟大的人。猜猜甲骨文真的不再关心嵌入式市场了。
我们现在可能不得不发布两个 JAR,一个用于嵌入式,一个用于 JDK 7。糟透了。
这是我们提交的错误报告:http ://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7078419
自 1.5 的 beta 阶段以来,该标志已被放弃。仅包含它以允许 1.5 beta 编译器默认绕过泛型检查/解析,而泛型规范尚未最终确定。一旦 1.5 发布,该标志就变得毫无意义。新的编译器版本在遇到它时可能不会出错,但很可能会默默地忽略它。
最新的 OpenJDK 源包 ( openjdk-7-ea-src-b130-18_feb_2011.zip
) 仍然包含源 () 中的标志langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java
,但它从未被支持,因此依赖它是一个坏主意。
你为什么需要它?