在Ant中,我究竟如何使用build.compiler
选项或the <javac>
task的compiler
属性?
我尝试设置compiler="javac1.5"
,但是当我在十六进制编辑器中打开生成的类文件时,类版本仍显示为32
十六进制(版本1.6) - 直到我设置{{1指向我的JDK 1.5安装。 (在那之前,它一直指向我的JDK 1.6安装。)所以看起来JAVA_HOME
取代了JAVA_HOME
属性 - 在这种情况下,该属性的目的是什么?
compiler
和source
属性做似乎正常工作;当我指定target
版本时,生成的类文件确实具有正确的版本。
答案 0 :(得分:6)
该属性的目的是能够选择gcj
或jikes
而不是标准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或更高版本。