[英]Eclipse JDT Batch Compiler OutOfMemoryError
我正在尝试使用多线程编译器来减少构建的持续时间,我发现Eclipse JDT Batch Compiler正是这样做的。
但是,当我切换到JDT编译器时,出现了OutOfMemoryError。 增加堆大小没有帮助。
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedReader.<init>(BufferedReader.java:80)
at java.io.BufferedReader.<init>(BufferedReader.java:91)
...
这是我们的build.xml的相关部分。
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
<javac srcdir="${env.BUILDSRC}"
destdir="${env.BUILDBIN}"
includeantruntime="false"
debug="on"
deprecation="no"
target="1.6"
source="1.6"
fork="true"
executable="/opt/java/jdk1.6.0_65_64bit/bin/javac"
memoryInitialSize="1024M"
memoryMaximumSize="2560M"
>
<compilerarg compiler="org.eclipse.jdt.core.JDTCompilerAdapter" line="-1.6"/>
JDTCompilerAdapter不支持'fork',因此它在运行ant的同一进程中进行编译。 从输出中可以明显看出:
由于编译器设置不是经典设置也不是现代设置,因此请忽略fork设置。
您必须增加分配给ant的内存使用量,这是通过ANT_OPTS完成的:
出口ANT_OPTS =“-Xmx3584M”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.