3

有什么方法可以使用 java 7 语法并生成适用于 1.5 的字节码?据我所知,选项-target-source不能有所不同。检查是否没有使用新的 API 也很好,但并不重要

4

4 回答 4

2

不它不是。据我所知,不同-source-target有效,但前提是源低于或等于目标(以提供向后兼容性)。可能有源代码转换器可以将您的 java 7 代码转换为旧版本。

于 2012-10-01T14:46:11.440 回答
1

有一个名为Retroweaver的项目,它允许您编写 Java 5 语法(包括泛型等)并将其转换为在 Java 1.4 和更早版本上运行的代码。

据我所知,没有类似的东西可以让 Java 7 语法的代码在旧版本上运行。

于 2012-10-01T14:47:47.997 回答
0

不,这是不可能的。例如,考虑新的 try-with-resources 构造:这可能会设置抑制的 throwable,但此 API 仅在 Java SE 7+ 中可用:

http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#getSuppressed%28%29

这意味着旧的 Java 版本无论如何都无法运行该代码。

于 2012-10-01T14:54:40.793 回答
0

不,如果您使用 Java7 语法,则无法使用 Java 5 编译该代码。

-source并且-target仅当语法与 -target 版本兼容时才有效。

于 2012-10-01T14:46:22.710 回答