使java代码适应所使用的jdk版本

时间:2012-11-26 16:55:54

标签: java preprocessor java-7

我最近在代码中玩了一些新的Java 7功能,我必须用Java 6编译。

显然,当使用旧的jdk构建Java 7代码时,我会收到编译错误。

在C#中,我只使用预处理器来定义版本条件,并将关键代码括在#if子句中。

Java的方法是什么?

2 个答案:

答案 0 :(得分:3)

一般来说,这是不可能的。 您可以为javac(-target)或通过ant / maven / gradle包装器设置目标版本。 但是,这仅适用于与较低版本兼容的功能。 您还需要一个您希望源代码可以读取的版本的javac。

简短的回答是:不。

答案 1 :(得分:1)

理论上,您可以设置-source-target并使它们与众不同。然而,这种方式的唯一组合是veraions 1.11.0。在所有其他情况下,您需要为源和目标使用相同版本的java。

如果必须使用Java 6,我建议您使用该编译器,因为库也需要适用于该版本,或者您可以方便地使用仅存在于Java 7中的库或方法。(有些实用程序可以编译分为旧版本,但他们无法检查这个)

BTW:Java 6即将结束免费支持,Java 6更新35可能是最后一个免费版本。也许是时候考虑Java 7了。