我需要使用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版本。
答案 0 :(得分:87)
使用“target”属性并删除“compiler”属性。见here。所以它应该是这样的:
<target name="compile">
<javac target="1.5" srcdir=.../>
</target>
希望这有帮助
答案 1 :(得分:43)
应指定源和目标。我建议提供ant defaults,这样您就不需要为每个javac任务指定源/目标属性:
<property name="ant.build.javac.source" value="1.5"/>
<property name="ant.build.javac.target" value="1.5"/>
有关详细信息,请参阅Java cross-compiling notes。
答案 2 :(得分:15)
要在我使用的类文件中找到java的版本:
javap -verbose <classname>
在开始时宣布版本为
minor version: 0
major version: 49
,对应于Java 1.5
答案 3 :(得分:5)
您也可以设置{{ant.build.javac.target=1.5}}
ant属性来更新任务的默认目标版本。
见http://ant.apache.org/manual/javacprops.html#target