2011-06-17 62 views
23

如何增加螞蟻permgen大小?我在ANT_OPTS已經給出如何增加螞蟻permgen大小?

-Xms768m -Xmx1024m -XX:PermSize =128米 -XX:MaxPermSize參數=128米

問題 1)指定上述系統環境設定後,仍然我是爲junit的螞蟻目標找出memeory錯誤。

Caught an exception while logging the end of the build. Exception was: 
java.lang.OutOfMemoryError: PermGen space 

2)當我在命令PROMT鍵入看到什麼爲ANT_OPTS路徑,回波%ANT_OPTS%它僅示出了

-Xmx512m

等部位跳過。我的路上出了什麼問題? 注意:我正在使用命令提示符運行ant目標。

+0

檢查您沒有任何其他變量(如'JAVA_OPTS')覆蓋它。 – Mikaveli

+0

你是通過某種容器運行的嗎?也許它沒有傳遞價值。 –

+0

不,我沒有任何其他OPTS。我正在運行集成測試,它需要較長時間來執行測試用例。使用命令提示符爲junit報告運行ant target。 – TechFind

回答

25

轉到我的電腦 - >右鍵單擊 - >屬性 - >高級 - >環境變量 - >新建(系統/用戶變量) - >

根據你的系統內存大小

  1. 配置值:

    進入

    Varible name: ANT_OPTS 
    Varible Value : -Xms1536m -Xmx1536m -XX:PermSize=1024m -XX:MaxPermSize=2048m 
    

    注意。

  2. 這個配置的Windows,其他操作系統配置相應

對於MAC:

在終端

,在項目轉到pom.xml的路徑,如下命令來運行:

出口MAVEN_OPTS =「 - Xmx1024m -XX:MaxPermSize = 512m」注意:大小是基於系統RAM的。 我用maven而不是老螞蟻。 MAVEN_OPTS/ANT_OPTS用於maven/ant配置。

+3

毫不奇怪,這在我的電腦上無法正常工作:運行OS X的Mac! – gutch

+0

我也沒有(Ubuntu的12.04) – mondjunge

+0

蘋果機的指令應該'ANT_OPTS'而不是'MAVEN_OPTS'? – pgreen2

3

你的測試做了什麼?它是否調用遞歸方法?

此外,您爲測試輸入的值將覆蓋任何系統設置。在你的電話試試這個在您的Ant腳本的JUnit:

<junit fork="yes" maxmemory="1024"> 
+1

如果你不提供'maxmemory',默認是什麼? – Blundell

+0

很好的回答!我發現我得到了內存不足錯誤,因爲我們的已被更改。默認情況下,它是'perTest',但是如果它被改爲別的東西(例如'once'),那麼這會導致OutOfMemory異常,因爲junit不會爲每個測試啓動一個新的VM實例。 –

1

對於我的junit螞蟻目標我只是設置fork="true"這樣一個新的jvm將啓動junit任務,還有forkmode="perBatch""perTest",爲我工作!