1. 程式人生 > >Ant報錯之out of memory

Ant報錯之out of memory

art googl out clas 一行代碼 java 求助 編譯 ace

用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。

Ant報錯之out of memory