ant build.compiler用法

JKV*_*JKV 3 java ant javac

可能重复:
覆盖Ant javac任务中的编译器属性

在蚂蚁,究竟什么时候使用build.compiler选项,或<javac>任务compiler属性?

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

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

Ian*_*rts 6

该属性的目的是能够选择类似于gcjjikes代替标准JDK编译器的东西. javac1.5(和javac1.6等)仅仅是用于一个别名modern,标准编译器,并且被简单地定义,以支持规则的默认值build.compilerjavac1.xx匹配的运行JDK(所以默认是modern上1.3和更高,classic在1.2或以下).

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