Java Eclipse和Ant生成的类文件大小的差异

Java Eclipse和Ant生成的类文件大小的差异,java,eclipse,ant,jar,jdk1.6,Java,Eclipse,Ant,Jar,Jdk1.6,我们试图在Eclipse中自动化一些繁琐的手动步骤,同时使用python在内部发布插件 其中一个步骤涉及生成jar文件,但在使用ant生成jar文件时,某些类文件的大小与创建jar时eclipse生成的类文件(49kb)不同(40kb) 我想知道为什么我们会看到大小上的差异(9kb),如果我们继续使用Ant创建的jar,它会不会在生产版本中引起任何问题 Ant代码如下- <project name="abc-tool" default="dist"> <property na

我们试图在Eclipse中自动化一些繁琐的手动步骤,同时使用python在内部发布插件

其中一个步骤涉及生成jar文件,但在使用ant生成jar文件时,某些类文件的大小与创建jar时eclipse生成的类文件(49kb)不同(40kb)

我想知道为什么我们会看到大小上的差异(9kb),如果我们继续使用Ant创建的jar,它会不会在生产版本中引起任何问题

Ant代码如下-

<project name="abc-tool" default="dist">

<property name="src" value="src" />
<property name="lib" value="lib" />
<property name="main" value="main\resources\images" />
<property name="properties" value="properties\corp" />
<property name="build" location="build" />
<property name="dist" location="dist" />

<target name="clean">
    <delete dir="${build}" />
    <delete dir="${dist}" />
</target>


<target name="init">
    <tstamp />
    <mkdir dir="${build}" />
    <mkdir dir="${build}\${main}" />
    <mkdir dir="${build}\${properties}" />
</target>

<target name="copy-non-java-files">
    <copy todir="${build}\${main}" >
        <fileset dir="src\main\resources\images" excludes="**/*.java" />
    </copy>
    <copy todir="${build}\${properties}" >
        <fileset dir="src\properties\corp" excludes="**/*.java" />
    </copy>
</target>

<target name="compile" depends="init,copy-non-java-files">
    <javac srcdir="${src}" destdir="${build}" source="1.6.45" includeantruntime="true">
        <classpath>
            <pathelement path="${java.class.path}/" />
            <fileset dir="C:\Temp\corp_installation\EclipseKepler\eclipse\plugins">
                <include name="**/*.jar" />
            </fileset>
            <fileset dir="${lib}">
                <include name="**/*.jar" />
            </fileset>
        </classpath>
    </javac>
</target>

<target name="dist" depends="compile">
    <mkdir dir="${dist}" />
     <copy todir="${build}/META-INF">
        <fileset dir="META-INF"/>
     </copy>
    <jar jarfile="${dist}/abc-tool-${DSTAMP}-${TSTAMP}.jar" basedir="${build}" manifest="${build}/META-INF/MANIFEST.MF"/>
</target>


Eclipse默认情况下不使用标准的javac,而是使用自己的编译器(ecj),所以这也许可以解释这一点。另外,1.6?@fge是否可以继续执行上述代码,此外,我们还没有迁移到1.8。好吧,javac做得很好,所以是的;相反,您必须想知道为什么Eclipse仍然坚持ecj