首页 文章

JBoss6无法在装有JDK 7的Windows(32位)机器上启动

提问于
浏览
1

JBoss不会从我当前的配置开始 . 我收到错误:

初始化VM时出错无法为对象堆保留足够的空间错误:无法创建Java虚拟机 . 错误:发生了致命异常 . 程序将会退出 . 按任意键继续 . . .

JBoss使用的JAVA_OPTS是:

-client 
-Dprogram.name=standalone.bat 
-Xms128 
-Xmx2G 
-XX:MaxPermSize=256M 
-Djava.net.preferIPv4Stack=true 
-Djboss.modules.system.pkgs=org.jboss.byteman 
-Xms1024m 
-Xmx2048m 
-XX:PermSize=32m 
-XX:MaxPermSize=512m 
-Xss2m 
-XX:+UseConcMarkSweepGC 
-XX:+CMSClassUnloadingEnabled 
-Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl 
-Djavax.xml.soap.SOAPConnectionFactory=org.apache.axis.soap.SOAPConnectionFactor‌​yImpl 
-Djavax.xml.soap.SOAPFactory=org.apache.axis.soap.SOAPFactoryImpl"

3 回答

  • 1

    JAVA_OPTS 你're setting the maximum heap to 2048m (2G) which won'在Win32上工作 - 这是控制它的 -Xmx2048m 选项(似乎被设置了两次) .

    要在Win32上运行,您应该调整 -Xms-Xmx 选项 . 在一个vanilla JBoss安装上(至少在我的JBoss安装上),两个选项都在 standalone.conf.bat 中设置 . 尝试将两者都设置为 1024m 以开始并减少,如果您仍然遇到问题 .

    它's also likely that you' ll想要关闭-XX:MaxPermSize(再次设置两次) . 256m 可能有效,但如果没有尝试使用 128m .

  • 0

    重用我的this部分答案(关于Tomcat,但适用于JBoss或任何Java进程):

    Windows操作系统将32位进程的内存分配限制为总共2 GiB(默认情况下) . [您将只能]分配大约1.5 GiB堆空间,因为还有其他内存分配给进程(JVM /库开销,perm gen space等) . 为什么32位Windows会产生2 GB的进程地址空间限制,但64位Windows会施加4GB的限制?其他现代操作系统[咳嗽Linux]允许32位进程使用4 GiB可寻址空间的全部(或大部分) . 也就是说,64位Windows操作系统可以配置为将32位进程的限制增加到4 GiB(32位为3 GiB):http://msdn.microsoft.com/en-us/library/windows/ desktop / aa366778(v = vs.85).aspx然而[正如其他人所说],最好的解决方案是在64位操作系统上使用64位JVM . Terabyte堆积任何人? :d

    因此,您将无法在Java选项中设置 -Xmx2048m ,但 -Xmx1024m 将起作用 - 应该接近1.5 GiB的值(但具体数字会有所不同) .

  • 2

    您应该使用64位操作系统 . 在使用jboss6,jdk1.7等时,你将面临很多32位操作系统的问题......

相关问题