繁体   English   中英

Eclipse JDT批处理编译器OutOfMemoryError

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM