在开发大型项目时,类文件通常有数千个之多,这时都需要采用一些make工具来辅助开发。有时需要编译的类太多,使用Ant编译时,会出现OutOfMemoryError的错误,使编译进程中断。这时,通常通过先移出部分文件,分批编译。但Java编译过程的自动依赖编译,通常很难确定究竟应该先移出哪些文件、后移出哪些文件伤透脑筋。有没有简便的方法?有!
转到你的Ant的安装目录,在bin子目录中找到ant.bat,使用文字编辑器打开,修改:runAnt处的允许命令,添加如下参数:
:runAnt
"%_JAVACMD%" -Xms128m -Xmx512m -classpath ……
如果你安装了Jike,使用Jike编译器,则需要修改:runAntWithJikes处的运行命令,同上。
结论:Java虚拟机默认分配64M内存,如果你的应用比较大,超出64M内存,Java虚拟机就会抛出OutOfMemoryError,并停止运行。不管是什么应用(Web应用、Application等),只需要修改你的机器上的运行Java命令,在java xxx命令中添加-Xms(最小使用内存)、-Xmx(最大使用内存)即可解决。当然,这儿的内存容量都是指物理内存,不能超出你的机器的物理内存的总容量。
以上是在http://www.javaresearch.org/ 上看到的解决方法
我查找了几个E文网站,还可以通过在MS-DOS方式下执行:
set ANT_OPTS="-Xmx340m" 或者 在环境变量中,新增个ANT_OPTS ,值为:"-Xmx340m".
原文:
Hello,
Please try the following on a DOS prompt:
set ANT_OPTS="-Xmx340m"
or you could create a new environment variable in System Properties with:
Variable Name: ANT_OPTS
Variable Value: "-Xmx340m", where 340 is the amt. of memory available in MBs.
hope that helps. cheers