Java Eclipse和Ant生成的类文件大小的差异
我们试图在Eclipse中自动化一些繁琐的手动步骤,同时使用python在内部发布插件 其中一个步骤涉及生成jar文件,但在使用ant生成jar文件时,某些类文件的大小与创建jar时eclipse生成的类文件(49kb)不同(40kb) 我想知道为什么我们会看到大小上的差异(9kb),如果我们继续使用Ant创建的jar,它会不会在生产版本中引起任何问题 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
<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