【问题标题】:Tomcat not starting : Not able to reserve enough space for object heapTomcat 未启动:无法为对象堆保留足够的空间
【发布时间】:2012-12-11 00:41:42
【问题描述】:

启动tomcat时出现错误

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

无法创建 Java 虚拟机

我用谷歌搜索了一下,这似乎是一个常见问题,但到处提到的修复方法对我不起作用。

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

在较轻的节点上:我已验证有足够的空间可供分配。

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

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

【问题讨论】:

  • 你的机器有多少内存?

标签: tomcat jvm heap-memory catalina


【解决方案1】:

32 位 Windows 上的 Java 需要一个连续的内存块 - windows32 不能提供太大的内存块,AFAIK 最大 1.5G(这是从 XP 时代回来的内存),但如果内存不是太碎片化,只有这么多已经(是的,我知道,现在听起来很奇怪)。

因此,在启动其他应用程序之前,您可以先尝试重新启动计算机并启动 java/tomcat。另一种选择是提供更少的内存(尝试需要多少与可用)。

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

【讨论】:

    【解决方案2】:

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

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

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

    XX:MaxPermSize=256m

    Tomcat 现在应该可以正常启动了

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 2021-05-16
      • 2023-03-13
      • 2014-02-28
      • 2010-11-06
      • 2013-01-17
      • 1970-01-01
      相关资源
      最近更新 更多