2010-02-17 77 views
0

我們正在使用Eclipselink並需要編織代碼,以便延遲獲取工作屬性。如何增加eclipselink的PermGen內存StaticWeaveAntTask

在編織過程中,我發現了以下錯誤:

weave: 

BUILD FAILED 
java.lang.OutOfMemoryError: PermGen space 

我有我的Ant構建文件內的下列任務:

<target name="define_weave_task" description="task definition for EclipseLink static weaving"> 
    <taskdef name="eclipse_weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"/> 
</target> 

<target name="weave" depends="compile,define_weave_task" description="weave eclipselink code into compiled classes"> 
    <eclipse_weave source="${path.classes}" target="${path.classes}"> 
     <classpath refid="compile.classpath"/> 
    </eclipse_weave> 
</target> 

已經很長一段時間工作的偉大。現在編織的代碼數量增加了,我得到了PermGen錯誤。我希望能夠增加燙髮空間的數量。

如果我在做一個編譯,我可以通過一個編譯參數(如<compilerarg value="-XX:MaxPermSize=256M"/>)來啓動perm空間,但這似乎不是eclipselink編織的有效參數。

我怎樣才能提高織物的燙髮空間?

回答

0

答案是在運行ant之前在ANT_OPTS環境變量中設置最大perm內存參數。

export ANT_OPTS="-XX:MaxPermSize=256m"

1

如果您在「與Eclipse相同的JRE中」運行Ant任務,那麼它就是Eclipse本身,您必須啓動一個肥胖的permgen。

+0

我是從Linux shell中運行ant,但你沒有給我一個很好的提示,我可以看看改變JRE的默認值。 – rayd09