Tomcat无法启动:无法为对象堆保留足够的空间

4

启动Tomcat时,我遇到了以下错误:

无法为对象堆保留足够的空间

无法创建Java虚拟机

我进行了一些谷歌搜索,发现这是一个常见问题,但是所有地方提到的解决方法对我都不起作用。

每个提到这个问题的地方都说“设置CATALINA_HOME或JAVA_OPTS。”我设置了这两个变量的值,并为头部和permsize保留了足够的空间,但仍然面临同样的问题。

轻松一点:我已经验证了有足够的空间可供分配。

我正在使用32位堆栈,并设置以下值的JAVA_OPTS和CATALINA_OPTS:

-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m


你的机器有多少内存? - Jon Skeet
2个回答

13

在32位Windows上使用Java需要连续的内存块 - Windows32不能提供过大的内存块,据我所知最多1.5G(这是XP时代的内存大小),但仅当内存没有太多的碎片时才能达到这个限制(是的,现在听起来很奇怪)。

因此,在启动其他应用程序之前,您可以尝试重新启动计算机并首先启动java/tomcat,或者提供较少的内存(尝试所需内存与可用内存的差异)。

此外,对于生产环境设置,我总是建议-Xms和-Xmx具有相同的大小:如果出现问题,您将立即获得结果,并且已经分配了连续的内存块。


1

尝试在“打开启动配置”中更改Tomcat参数。

在Eclipse中,进入服务器视图,双击服务器,点击“打开启动配置”链接。在出现的屏幕上,选择“参数”选项卡,您将看到一个类似于以下结尾的值: -Dproperties.path=C:/dgoj/properties/local -Xms512m -Xmx1024m -XX:MaxPermSize=512m

您只需要修改最后一个值,即XX:MaxPermSize,将其设置为:

XX:MaxPermSize=256m

现在Tomcat应该能够正常启动了。


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