构建Apache FOP时,系统资源不足

时间:2010-01-01 11:47:39

标签: java out-of-memory

当尝试在命令行上使用ant构建Apache FOP时,它会抱怨:

[javac] The system is out of resources.
[javac] Consult the following stack trace for details.
[javac]     ...
[javac]     at com.sun.tools.javac.main.Main.compile(Main.java:353)

我不明白。我有足够的RAM,系统如何耗尽资源?

2 个答案:

答案 0 :(得分:5)

您需要为JVM提供更多内存。例如下面为JVM分配512Mb。

javac -Xmx512m ...

Java虚拟机以固定的最大内存大小运行。对于内存密集型操作,您需要适当增加它。 -Xmx指定JVM将采用的最大内存量。 -Xms指定JVM在启动时分配的内存量

有一个很好的选项摘要here

注意:鉴于上述情况是通过Ant发生的,您可能需要增加Ant可用的内存(例如set ANT_OPTS=-Xms256M -Xmx512M)和/或javac进程可用的内存(如果它被分叉为一个单独的可执行文件。

答案 1 :(得分:1)

系统内存的大小只是故事的一半,JVM在启动时会将内存块分配为堆空间。 java编译器作为java应用程序只有这么多的内存可以使用

您可以使用此选项自行设置java编译器的堆大小

javac     -J-Xms<size>m 

查看完整的开关集here