我需要使用ant(1.7.0)编译一个jar文件,以在特定版本的Java(1.5)下运行.我目前在我的机器上安装了Java 1.6.我试过设置:
<target name="compile">
<javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>
Run Code Online (Sandbox Code Playgroud)
我也删除了
<property name="build.compiler" value="modern"/>
Run Code Online (Sandbox Code Playgroud)
并且没有属性文件.我在Linux/SUSE上运行Java 1.6
还有一种简单的方法可以确定jar文件中预期的Java版本.
Naw*_*Man 88
使用"target"属性并删除"compiler"属性.看到这里.所以它应该是这样的:
<target name="compile">
<javac target="1.5" srcdir=.../>
</target>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
use*_*062 44
应指定源和目标.我建议提供ant默认值,这样您就不需要为每个javac任务指定source/target属性:
<property name="ant.build.javac.source" value="1.5"/>
<property name="ant.build.javac.target" value="1.5"/>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Java交叉编译说明.
pet*_*ust 15
要在我使用的类文件中找到java的版本:
javap -verbose <classname>
Run Code Online (Sandbox Code Playgroud)
它在开始时宣布版本为
minor version: 0
major version: 49
Run Code Online (Sandbox Code Playgroud)
它对应于Java 1.5
您还可以设置{{ant.build.javac.target=1.5}}ant属性以更新任务的默认目标版本.请参见http://ant.apache.org/manual/javacprops.html#target