今天,在使用ANT构建工具构建Java EE 应用程序的时候,编译过程中给哥来了一个内存溢出。
问题是,同样的脚本,不同的项目,一个成功,一个内存溢出。崩溃。
首要任务,那就是看一下build.xml文件对应的文件行,正好是JAVAC处:
<javac srcdir="${src.dir}" includeantruntime="false" destdir="${webapp.dir}/WEB-INF/classes" debug="${debug}" optimize="${optimize}">
<classpath refid="libclasspath" />
</javac>
没有设置编译内存,重新设置一下:
<javac fork="true" memoryMaximumSize="1024m"srcdir="${src.dir}" includeantruntime="false" destdir="${webapp.dir}/WEB-INF/classes" debug="${debug}" optimize="${optimize}">
<classpath refid="libclasspath" />
</javac>
方法二:如果是通过bat命令执行ant编译,可以通过bat命令,设置内存值。在调用ant命令编译之前:
set DEBUG_OPTS=-Xms256m -Xmx512m
至于同样的默认参数在不同的项目得到的不同结果,还没有进行深入分析。
能不能这样理解,ant构建不同项目的过程中,实际需要的内存大小与项目相关。
猜测而已,未证实!