我正在使用ant构建一个自动构建环境,使用eclipse中使用的相同eclipse编译器构建一个新签出的源代码树.问题是,一些生成的类文件的大小不同于在eclipse中编译生成的类文件.为什么是这样?这没关系,还可以预料到吗?按照规定,我告诉Ant使用eclipse编译器,如:
<target description="compile project with Eclipse compiler" name="build-eclipse-compiler">
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
<antcall target="build"/>
</target>
Run Code Online (Sandbox Code Playgroud)
Eclipse使用自己的编译器,它生成稍微不同但正确的字节码.
Ant使用JDK中提供的标准Sun编译器 - javac.
可以从eclipse.org下载eclipse编译器,并告诉ant使用它.这样做的另一个好处是能够单独使用JRE进行编译,这比完整的JDK更容易安装.在http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/index.php中查找"JDT核心批处理编译器"
编辑:即使使用相同的编译器,生成的字节代码也可能不同.影响这一点的一些因素是: