Java 为什么在eclipse中编译相同的代码,然后通过ant使用eclipse编译器时,类文件的大小不同?
我正在使用ant创建一个自动构建环境,以使用eclipse中使用的相同eclipse编译器构建一个新签出的源代码树。问题在于,生成的某些类文件的大小与在eclipse中编译生成的类文件的大小不同。为什么会这样?这样可以吗?这是意料之中的事吗?按照规定,我告诉Ant使用eclipse编译器,如:Java 为什么在eclipse中编译相同的代码,然后通过ant使用eclipse编译器时,类文件的大小不同?,java,eclipse,Java,Eclipse,我正在使用ant创建一个自动构建环境,以使用eclipse中使用的相同eclipse编译器构建一个新签出的源代码树。问题在于,生成的某些类文件的大小与在eclipse中编译生成的类文件的大小不同。为什么会这样?这样可以吗?这是意料之中的事吗?按照规定,我告诉Ant使用eclipse编译器,如: <target description="compile project with Eclipse compiler" name="build-eclipse-compiler">
<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编译器可以从eclipse.org下载,并告诉ant使用它。这还有一个额外的好处,即可以单独使用JRE进行编译,这比完整的JDK更容易安装。在中查找“JDT核心批处理编译器”
编辑:即使使用相同的编译器,生成的字节码也可能不同。影响这一点的一些因素包括:
- 目标JVM-Java6字节码与Java1.2字节码略有不同
- 优化级别(一些内联,现在最好留给JVM)
- 调试信息包含