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


68

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

Answers:


89

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

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

希望这可以帮助


7
我还必须使用source和bootclasspath属性。请参见此处的交叉编译示例。(与ant属性有直接对应关系)
kon psych 2013年

5
这将是非常好的,如果答案可以被修改,添加sourcebootclasspath
贾森小号

对旧版应用程序有帮助。
布列塔尼F.

<javac target =“ 15”
Oleksii Kyslytsyn

46

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

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

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


<property name =“ ant.build.javac.source” value =“ 15” /> <property name =“ ant.build.javac.target” value =“ 15” />
Oleksii Kyslytsyn

15

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

javap -verbose <classname>

在一开始就宣布版本

minor version: 0
major version: 49

对应于Java 1.5


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.