代码之家  ›  专栏  ›  技术社区  ›  Karl von Moor

构建Apache FOP时系统资源不足

  •  3
  • Karl von Moor  · 技术社区  · 15 年前

    当Ant试图在命令行上构建ApacheFop时,它抱怨:

    [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)
    

    我不明白。我有足够的内存,系统怎么会耗尽资源?

    2 回复  |  直到 14 年前
        1
  •  5
  •   Brian Agnew    15 年前

    你需要给你的JVM更多的内存。例如,下面将512MB分配给JVM。

    javac -Xmx512m ...
    

    Java虚拟机以固定的方式运行。 最大限度 内存大小。对于内存密集型操作,需要适当地增加这个值。 -Xmx 指定JVM将占用的最大内存量。 -Xms 指定JVM分配的内存量 启动时 .

    有一个很好的选项摘要 here .

    注意:考虑到上述情况是通过Ant发生的,您可能需要增加Ant可用的内存(例如 set ANT_OPTS=-Xms256M -Xmx512M )和/或您的 javac 处理是否作为单独的可执行文件进行分叉。

        2
  •  1
  •   Alon    15 年前

    系统内存的大小只是故事的一半,JVM在启动时将内存块分配为堆空间。Java编译器作为Java应用程序只有这样的内存才能工作。

    您可以用这个选项自己设置Java编译器的堆大小。

    javac     -J-Xms<size>m 
    

    查看完整的开关组 here

    推荐文章