当使用Ant编译大量的Java源文件时,会出现java.lang.OutOfMemoryError:Java heap space异常,解决方法:
<target name="compile" depends="init,create-manifest" description="compile the java code and copy the config files">
<javac srcdir="${src.dir}" destdir="${root.dir}/WEB-INF/classes" debug="true" fork="true" memoryMaximumSize="512m" debuglevel="lines,vars,source" includeantruntime="on">
<compilerarg line="-encoding UTF-8 -source 1.7 -target 1.7" />
<classpath refid="classpath" />
</javac>
<copy todir="${root.dir}/WEB-INF/classes">
<fileset dir="${src.dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
<jar destfile="${root.dir}/WEB-INF/lib/${web.jar.filename}" index="true" manifest="${build.dir}/MANIFEST.MF">
<fileset dir="${root.dir}/WEB-INF/classes" />
</jar>
<delete dir="${root.dir}/WEB-INF/classes" />
</target>
在javac的选项里增加 fork="true" memoryMaximumSize="512m"
来加在编译时的内存,实际上我只添加了fork="true"
也可以。
参考:
- http://blog.csdn.net/stonree/article/details/48470129;