繁体   English   中英

为什么在eclipse中编译相同的代码,然后通过ant与eclipse编译器一起使用时,类文件的大小不同?

[英]Why are class files different size when compiling the same code in eclipse, and then with the eclipse compiler via ant?

我正在使用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>

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 Core Batch编译器”


编辑:即使使用相同的编译器,生成的字节码也可能不同。 影响此的一些因素是:

  • 目标JVM-Java 6字节代码与Java 1.2字节代码略有不同。
  • 优化级别(一些内联,这些天最好留给JVM)
  • 包含调试信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM