初始化VM时发生错误无法为对象堆保留足够的空间无法创建Java虚拟机

我在一个多月后面临这个问题,这是我在命令行上运行java时看到的:

$ java -Xmx1300m Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. 

如果我用较少的内存运行它可以正常工作

 $ java -Xmx1240m Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) ..... ..... 

我花了一个星期试图调试这个并没有任何效果。 最后我让我的IT支持人员更换笔记本电脑。 这发生在一个月前的10月23日。 现在,一个月后,我的新系统又出现了同样的问题。

我的系统配置是:

Win 7 Enterprise(64位),Service Pack 1.英特尔(R)Core(TM)i7-2640M CPU @ 2.80GHz 8.00 GB RAM

 Java: java version "1.5.0_20" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_20-b02) Java HotSpot(TM) Client VM (build 1.5.0_20-b02, mixed mode) 

我们这里有一个约30人的团队,我是唯一一个面对这个的人。 所有其他配置几乎相同,并为他们工作正常。

一个重要的观察是Java工作正常一段时间,然后这个问题一旦出现它就不会消失,即使我重新安装java。

在IT支持人员通过笔记本电脑重新成像后,我第三次遇到这个问题。 它工作了一个月,现在又出现了同样的问题。

每个人都完全无能为力。 我现在开始使用2台笔记本电脑。 🙂

尤里卡! 最后我找到了解决方案。

这是由Windows更新导致的,该更新阻止任何32位进程在64位计算机上消耗超过1200 MB。 唯一可以修复此问题的方法是使用Win 7上的“系统还原”选项。

开始>>所有程序>>附件>>系统工具>>系统还原。

然后恢复到Java工作正常的日期。 这对我有用。 令人惊讶的是,即使禁用所有Windows更新,Windows仍会以“关键更新”的名义推送系统更新。 ^& %)# * Windows 🙂

无论如何,这是如何解决它:

转到开始 – >控制面板 – >系统 – >高级(选项卡) – >环境变量 – >系统变量 – >新建:

变量名称:_JAVA_OPTIONS

变量值:-Xmx512M

取自此链接

如果您在具有32位JVM(JDK)的64位计算机上运行,​​则可能会发生这种情况,并将其切换到64位JVM。 检查(右击我的电脑 – >属性)控制面板\系统和安全\系统 – >高级系统设置 – >高级选项卡 – >环境变量 – > JAVA_HOME …

谢谢。我将堆空间从2000MB更改为1024MB并且它有效…

我自己刚看到这个问题,Jboss AS7和jdk1.5.0_09。 将系统属性JAVA_HOME更新为jdk1.7 +进行修复(我使用的是jdk1.7.0_67)。

如果您的计算机是64位,您只需卸载Java x86版本并安装64位版本即可。 我有同样的问题,这有效。 没有什么需要做的。

有时可能会在同一个Java VM上运行多个应用程序。 如果你已经尝试了上述所有其他解决方案,它就没有用。 尝试通过传递vmargs在新创建的Java VM上运行它来运行您的进程

 -agentlib:jdwp=transport=dt_socket,server=y,address=10049,suspend=n . 

这里的地址是vm所需要的。