10

谁能告诉我 JDK7/8 的jsr14目标选项javac仍然可用吗?

说,

$ javac -source 1.5 -target jsr14 Hello.java
4

3 回答 3

12

我们在 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

于 2011-08-18T13:43:47.230 回答
4

自 1.5 的 beta 阶段以来,该标志已被放弃。仅包含它以允许 1.5 beta 编译器默认绕过泛型检查/解析,而泛型规范尚未最终确定。一旦 1.5 发布,该标志就变得毫无意义。新的编译器版本在遇到它时可能不会出错,但很可能会默默地忽略它。

于 2011-02-25T14:45:39.713 回答
4

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

你为什么需要它?

于 2011-02-25T12:30:01.787 回答