Ant报错之out of memory

用Ant打包一个比較大的项目的时候,遇到OutOfMemory的问题,求助于Google和百度,网上的解决方式非常多,可是个人认为不够具体全面。我的问题须要综合两种方法才解决。把方案记下来。以期帮助大众点滴。

错误类型

Ant编译任务报错OutOfMemoryError,提示信息显示是Java Heap Space。

解决方式

综合网上的两种方法,我的须要两个都用。分析一下,无非就是Java程序内存分配太小,不够用了。Java相应的调整參数为非标准參数-Xmx。

  1. 改动Ant命令脚本
    找到Ant的安装文件夹,进入bin文件夹。依据不同的环境。改动相应的脚本。Linux以下,打开ant脚本, 在ant_exec_args=之前加一行代码export ANT_OPTS=-Xmx1024m;Windows以下打开ant.bat, 在@echo off之后加一行代码set ANT_OPTS=-Xmx1024m
  2. 更改Ant的javac指令參数
    新增下面參数fork="true" memoryMaximumSize="1024m"。注意fork="true"必须与memoryMaxinumSize 配套使用。fork="true"是指单独起一个java进程才处理编译任务。

总结

Java的内存不够错误。都是调整java命令參数。-Xmx调整堆的最大值,与java heap space错误相应;-XX:PermSize<=size>调整永久区的最大值,与java permanent space错误相应,比如-XX:PermSize=64m,把永久区调整为64M。

原文地址:https://www.cnblogs.com/liguangsunls/p/6876505.html