gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 20:07:03 25 4
gpt4 key购买 nike

我正在使用 ant 构建一个自动构建环境,以使用与 eclipse 中使用的相同的 eclipse 编译器构建新 checkout 的源代码树。问题是一些生成的类文件与在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 使用标准的 Sun 编译器 - javac - 在 JDK 中可用。

可以从 eclipse.org 下载 eclipse 编译器,并告诉 ant 使用它。这样做的额外好处是能够单独使用 JRE 进行编译,这比完整的 JDK 更容易安装。在 http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/index.php 中查找“JDT Core Batch Compiler”


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

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

关于java - 为什么在 eclipse 中编译相同代码时类文件大小不同,然后通过 ant 使用 eclipse 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3629158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com