72

我需要使用 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 版本。

4

4 回答 4

91

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

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

希望这可以帮助

于 2009-09-28T16:29:10.353 回答
48

应指定源和目标。我建议提供ant defaults,这样您就不需要为每个 javac 任务指定源/目标属性:

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

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

于 2013-05-24T19:28:49.590 回答
15

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

javap -verbose <classname>

它在开始时宣布版本为

minor version: 0
major version: 49

对应于 Java 1.5

于 2009-09-28T16:38:15.703 回答
5

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

于 2012-10-09T11:24:44.847 回答