我在构建build.xml时遇到了这个问题.
BUILD FAILED
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94)
at org.codehaus.cargo.module.DefaultJarArchive.<init>(DefaultJarArchive.
java:75)
at org.codehaus.cargo.module.DefaultJarArchive.<init>(DefaultJarArchive.
java:56)
at org.codehaus.cargo.module.webapp.DefaultWarArchive.<init>(DefaultWarA
rchive.java:69)
at org.apache.cactus.integration.ant.CactifyWarTask.addJarWithClass(Cact
ifyWarTask.java:652)
at org.apache.cactus.integration.ant.CactifyWarTask.addCactusJars(Cactif
yWarTask.java:627)
at org.apache.cactus.integration.ant.CactifyWarTask.execute(CactifyWarTa
sk.java:519)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
at net.sf.antcontrib.logic.IfTask.execute(IfTask.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
Run Code Online (Sandbox Code Playgroud)
Chr*_*ung 56
听起来你需要启动具有更大内存限制的JVM.尝试类似的东西(如果你使用的是Bourne shell):
export ANT_OPTS=-Xmx1g
ant
Run Code Online (Sandbox Code Playgroud)
或者,如果您cmd在Windows下使用:
set ANT_OPTS=-Xmx1g
ant
Run Code Online (Sandbox Code Playgroud)
以上,1g意味着1 GB.你可以随意调整它; 例如,如果要使用1.5 GB,则可以使用-Xmx1536m.
Yaz*_*zad 12
(对于<Java 8,permgen不适用于Java 8及更高版本)
为了在错误消息中使用"PermGen"一词获得类似跟踪的用户,
java.lang.OutOfMemoryError: PermGen space
Run Code Online (Sandbox Code Playgroud)
增加ANT_OPTS中的perm-gean空间(最好,但不一定与最大堆大小一起)应解决问题
例
export ANT_OPTS="-Xmx2g -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)
根据您的需要调整数字.
干杯!
小智 7
如果'javac'任务与fork选项一起使用,那么javac将在他自己的进程中运行,并且应该使用'memoryinitialsize'和'memorymaximumsize'将内存直接分配给javac:
javac srcdir="${src}"
destdir="${classes}"
source="1.6"
debug="true"
fork="true"
deprecation="off"
memoryinitialsize="512m"
memorymaximumsize="1024m"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56336 次 |
| 最近记录: |