ant build.compiler用法

时间:2012-11-01 14:33:07

标签: java ant javac

  

可能重复:
  Override the compiler attribute in an Ant javac task

在Ant中,我究竟如何使用build.compiler选项或the <javac> taskcompiler属性?

我尝试设置compiler="javac1.5",但是当我在十六进制编辑器中打开生成的类文件时,类版本仍显示为32十六进制(版本1.6) - 直到我设置{{1指向我的JDK 1.5安装。 (在那之前,它一直指向我的JDK 1.6安装。)所以看起来JAVA_HOME取代了JAVA_HOME属性 - 在这种情况下,该属性的目的是什么?

compilersource属性似乎正常工作;当我指定target版本时,生成的类文件确实具有正确的版本。

1 个答案:

答案 0 :(得分:6)

该属性的目的是能够选择gcjjikes而不是标准JDK编译器。 javac1.5(和javac1.6等)只是标准编译器modern的别名,并且只是为了支持默认值build.compiler为{的规则而定义的{1}} javac1.x与正在运行的JDK匹配(因此默认值为x在1.3及更高版本,modern在1.2及以下)。

如果要编译将在1.5上运行的类,则需要使用classic并将bootstrap类路径设置为指向1.5类库,以确保不调用引入的方法1.6或更高版本。