• 未分類
  • 0

使用Apache Ant & flex sdk Compiling SWF 產生 JAVA mxmlc Error: PermGen space

當我使用Apache Ant & Flex SDK 編譯 SWF 時有些檔案是可以正常編譯

但編譯某些檔案的時候出現

[mxmlc] Error: PermGen space

[mxmlc] Error: PermGen space
[mxmlc]
[mxmlc] java.lang.OutOfMemoryError: PermGen space
[mxmlc] at java.lang.ClassLoader.defineClass1(Native Method)
[mxmlc] at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
[mxmlc] at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
[mxmlc] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
[mxmlc] at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
[mxmlc] at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
[mxmlc] at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
[mxmlc] at java.security.AccessController.doPrivileged(Native Method)
[mxmlc] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[mxmlc] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[mxmlc] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[mxmlc] at flex2.compiler.as3.Compiler.generate(Compiler.java:679)
[mxmlc] at flex2.compiler.API.generate(API.java:3514)
[mxmlc] at flex2.compiler.API.generate(API.java:3477)
[mxmlc] at flex2.compiler.API.batch2(API.java:416)
[mxmlc] at flex2.compiler.API.batch(API.java:1117)
[mxmlc] at flex2.compiler.API.compile(API.java:1290)
[mxmlc] at flex2.compiler.API.compile(API.java:1210)
[mxmlc] at flex2.tools.Compiler.mxmlc(Compiler.java:275)
[mxmlc] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[mxmlc] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[mxmlc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[mxmlc] at java.lang.reflect.Method.invoke(Method.java:597)
[mxmlc] at flex.ant.FlexTask.executeInProcess(FlexTask.java:283)
[mxmlc] at flex.ant.FlexTask.execute(FlexTask.java:225)
[mxmlc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[mxmlc] at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
[mxmlc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[mxmlc] at java.lang.reflect.Method.invoke(Method.java:597)
[mxmlc] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchU
tils.java:106)
[mxmlc] at org.apache.tools.ant.Task.perform(Task.java:348)
[mxmlc] at org.apache.tools.ant.Target.execute(Target.java:390)

BUILD FAILED
ant\build.plugins.xml:73: mxmlc task failed

Total time: 20 seconds

這個詭異的問題

對導致這個原因為 JVM 執行太多程序超過負荷 導致 OutOfMemoryError 就會導致 Error: PermGen space

解決方法就是擴充資源

新增 系統變數
變數名 ANT_OPTS
變數值 -Xms512m -Xmx786m -XX:MaxPermSize=786m

如下圖

確定變更後

在執行就可以了

Comments

comments

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料