Reputation: 1932
I am making an automated build environment using ant to build a freshly checked out source tree using the same eclipse compiler that is used in eclipse. The problem is that some of the resulting class files are different in size than the class file generated by compiling within eclipse. Why is this? Is this ok, and to be expected? As prescribed I'm telling Ant to use the eclipse compiler, like:
<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>
Upvotes: 6
Views: 5201
Reputation: 484
Difference in sizes is because ANT's javac by default has debug mode as false.
Turning
debug="true"
in javac of ANT script will
Upvotes: 0
Reputation: 75376
Eclipse uses its own compiler, which generates slightly different - but correct - bytecode.
Ant uses the standard Sun compiler - javac - available in the JDK.
The eclipse compiler can be downloaded from eclipse.org and ant told to use it. This has the added benefit of being able to compile with the JRE alone, which is much easier to install than the full JDK. Look for "JDT Core Batch Compiler" in http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/index.php
EDIT: Even with the same compiler the byte code generated may be different. Some factors that influence on this are:
Upvotes: 5