java堆空间问题,如何增加堆大小?

时间:2010-02-09 15:03:22

标签: java heap out-of-memory

我正在运行一个指向asant的“.bat”文件:

C:\Sun\SDK\bin\asant Startbds

asant再次指向我得到的xml文件,build.xml:

<target name="Startbds" description="Start bds">

                                

现在一切都很好,但现在我添加了更多数据,导致内存不足错误:

java.lang.outOfMemoryError: Java heap space

所以我试图通过各种方法在搜索解决方案时增加堆空间:

  • cmd:设置ANT_OPTS=-Xms512m -Xmx512m(无效,相同的错误消息)
  • 编辑asant.bat,我从
  • 编辑了“-set ANT_OPTS”行

set ANT_OPTS="-Dos.name=Windows_NT" -Djava.library.path=%AS_INSTALL%\lib;%AS_ICU_LIB%;%AS_NSS%" "-Dcom.sun.aas.installRoot=%AS_INSTALL%" "-Dcom.sun.aas.instanceRoot=%AS_INSTALL%" "-Dcom.sun.aas.instanceName=server" "-Dcom.sun.aas.configRoot=%AS_CONFIG%" "-Dcom.sun.aas.processLauncher=SE" "-Dderby.root=%AS_DERBY_INSTALL%"  

set ANT_OPTS="-Xms512m -Xmx512m" "-Dos.name=Windows_NT" -Djava.library.path=%AS_INSTALL%\lib;%AS_ICU_LIB%;%AS_NSS%" "-Dcom.sun.aas.installRoot=%AS_INSTALL%" "-Dcom.sun.aas.instanceRoot=%AS_INSTALL%" "-Dcom.sun.aas.instanceName=server" "-Dcom.sun.aas.configRoot=%AS_CONFIG%" "-Dcom.sun.aas.processLauncher=SE" "-Dderby.root=%AS_DERBY_INSTALL%"  

但这给了我错误信息:

"Invalid initial heap size: -Xms512m -Xmx512m
 Could not create the Java virtual machine."

任何人都知道我应该如何增加堆积? 也许还可以指出我可以在哪里找到一个工具来观察堆积。

提前致谢。

3 个答案:

答案 0 :(得分:6)

使用"-Xms512m -Xmx512m",您提供了单个参数-Xms期望最小堆大小由参数的其余部分指定。因此,您将最小堆大小定义为“512m -Xmx512m”,这不是有效值。

您需要将这些开关提供为两个参数

set ANT_OPTS=-Xms512m -Xmx512m "-Dos.name=Windows_NT" ...

答案 1 :(得分:1)

我认为,如果你在Windows中,你不需要你的套装中的双引号。 这是我在某处看到的一个例子:

set ANT_OPTS=-Xms512m -Xmx512m  (Windows)
export ANT_OPTS="-Xms512m -Xmx512m"  (ksh/bash)
setenv ANT_OPTS "-Xms512m -Xmx512m"  (tcsh/csh)

至于监视堆使用情况,如果您在Windows上使用最新的JDK,则应该使用Sun的VisualVM。

答案 2 :(得分:0)

在eclipse中的

- &gt; window-&gt; preferences-&gt; Tomcat-&gt; JVM设置 - &gt;附加到JVM参数

-XX:MaxPermSize参数=512米

-Xms512m

-Xmx512m