在ant javac中设置Java的目标版本

我需要使用ant(1.7.0)编译一个jar文件,以在特定版本的Java(1.5)下运行。 我目前在我的机器上有Java 1.6。 我试过设置:

<target name="compile"> <javac compiler="javac1.5" target="1.5" srcdir=.../> </target> 

我也删除了

 <property name="build.compiler" value="modern"/> 

并没有属性文件。 我正在Linux / SUSE上运行Java 1.6

还有一个简单的方法来确定在jar文件中预期哪个版本的Java。

使用“目标”属性并删除“编译器”属性。 看到这里 。 所以它应该是这样的:

 <target name="compile"> <javac target="1.5" srcdir=.../> </target> 

希望这可以帮助

应指定源和目标。 我build议提供ant默认值 ,这样你不需要为每个javac任务指定source / target属性:

 <property name="ant.build.javac.source" value="1.5"/> <property name="ant.build.javac.target" value="1.5"/> 

有关更多信息,请参阅Java交叉编译说明 。

在我使用的类文件中查找java的版本:

 javap -verbose <classname> 

它在开始时宣布版本

 minor version: 0 major version: 49 

这对应于Java 1.5

您也可以设置{{ant.build.javac.target=1.5}} ant属性来更新任务的默认目标版本。 请参阅http://ant.apache.org/manual/javacprops.html#target