JBoss-EAP-6.3无法为对象堆保留足够的空间

3
我在32位Windows系统上运行Java7。每次尝试运行程序时,当我运行Jboss-eap-6.3服务器时,都会反复出现以下异常提示:
  • D:\mysoft\jboss-eap-6.3\bin>standalone.bat
  • 正在调用D:\mysoft\jboss-eap-6.3\bin\standalone.conf.bat
  • 将JAVA属性设置为C:\Program Files\Java\jdk1.7.0_10\bin\java

JBoss Bootstrap Environment
JBOSS_HOME: "D:\mysoft\jboss-eap-6.3"
JAVA: "C:\Program Files\Java\jdk1.7.0_10\bin\java"

JAVA_OPTS: "-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-Tra
ceClassUnloading -client -Dprogram.name=standalone.bat -Xms1G -Xmx1G -XX:MaxPermSize=256M -Djava.net.preferIPv4Stack=true  -Djboss.modules.policy-per
missions=true  -Djboss.modules.system.pkgs=org.jboss.byteman"

...
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

有人能帮我吗?

6个回答

6
这实际上是启动脚本的问题。这里有一个相关的bug:https://bugzilla.redhat.com/show_bug.cgi?id=956281。解决方法是从JAVA_OPTS行中删除perm gen设置:
Cause: The max perm gen space parameter is causing the JVM to not be created, which then prevents the server from starting.  This is specifically on Windows 8 32-bit JVM.
Consequence: The server will not start.
Workaround (if any): Remove the -XX:MaxPermSize=256m

6
你可以通过更改standalone.conf.bat下的JAVA_OPTS值来解决此问题。

旧的

rem # JVM memory allocation pool parameters - modify as appropriate.
set "JAVA_OPTS=-Xms1303M -Xmx1303M -XX:MaxPermSize=256M"

新的

set "JAVA_OPTS=-Xms256M -Xmx256M -XX:MaxPermSize=256M"

2
您的机器可用内存是多少? 我看到参数-Xms1G -Xmx1G。这意味着您的JVM将以Xms=1GB的内存启动,并能够使用最大Xmx=1GB的内存。 我认为,您可以减少内存量(例如-Xmx2048m -Xms256m)。 希望对您有所帮助。 您可以参考这个链接

1
根据上述Federico Sierra的回答,在位置为的地方,存在文件。在该文件中,我仅仅注释掉了以下行:
<permgen size="256m" max-size="256m"/>

它正在工作。感谢Federico Sierra。


请不要在评论中发布“答案”以评论另一个答案。如果@federicosierra的答案对您有帮助,请(点赞并)将其标记为已接受。 - tripleee

1
如果尝试了以上所有选项后仍无法正常工作。前往: jboss-eap-6.4\domain\configuration -> host.xml,并设置此大小
<heap size="256m" max-size="256m"/>

同时也需要前往以下目录:jboss-eap-6.4\standalone\configuration,打开standalone.xml文件并设置相应的大小。

set "JAVA_OPTS=-Xms256M -Xmx256M -XX:MaxPermSize=256M"

现在重新启动您的Eclipse并尝试运行Jboss6.1+服务器,它应该可以工作。

同时在host.xml中设置以下内容:<permgen size="256m" max-size="256m"/> 祝好运。


还要在host.xml中设置:<permgen size="256m" max-size="256m"/>。 - Dinesh Jr

0

对我来说,通过切换到64位JDK解决了这个问题... 当我使用32位JDK时,我面临着这个问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接