解决ANT出现的内存溢出问题

本文介绍了在使用Ant构建项目过程中遇到的java.lang.OutOfMemoryError问题,并提供了两种有效的解决方案:一是通过修改ant.bat文件来增加虚拟机内存;二是通过在javac节点设置fork属性及内存限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔者今天在使用ANT构建项目时,抛出了异常错误,java.lang.OutOfMemoryError:The system is out of resources。

Ant中使用javac命令,抛出的java.lang.OutOfMemoryError错误和一般java应用抛出这个错误没两样。当执行JDKjavac命令,都是调用%JAVA_HOME%/lib/tools.jar包中com.sun.tools.javac.main.Main类。

在进行资料查阅和尝试后,发现解决一般有两种方案:

第一种:

通过修改ant的配置文件来指定虚拟机的内存大小,Window环境下修改bin目录下的ant.bat文件,可以直接在ant.bat的头文件处加上如下的指令:

set ANT_OPTS="-Xms800m -Xmx800m"  ,设置的足够大,应该不会出现内存溢出的状态。(已验证,建议使用)。

第二种:

javac节点处设置fork属性,同时指定memoryinitialsizememorymaximumsize属性。例如: 
  1. <javac fork="true"  

2.            srcdir="${basedir}/src"  

3.            destdir="${basedir}/build/classes"  

4.            classpath="${project.classpath}"  

5.            memoryinitialsize="256m"  

6.            memorymaximumsize="256m">  

7.     </javac>  


  说明: 
    -fork没有指定fork属性(默认为false),javac命令将和ant在同一个进程中执行,同时javac被分配的内存只有64MB,如果指定fork属性为truejavac命令将和ant不在同一个进程中执行,分配内存的大小将为memoryinitialsizememorymaximumsize指定的大小。 
    -memoryinitialsizejavac占用的最小内存。 
    -memorymaximumsizejavac占用的最大内存。 






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值