基本上我们已经注意到,在某些计算机上设置JVM选项-Xmx(最大堆大小)有时会导致JVM无法初始化,即使系统上有足够的RAM.
因此,例如,在4GB的机器上,我们有-Xmx1024m失败但-Xmx800m工作.我可以在一台1GB的机器上理解,即使是一台2GB的机器,但在一台4GB的机器上,特别是考虑到Windows,Linux等可以交换RAM,为什么这会失败?
我已经看到很多线程和问题都说减少你的最大堆大小,但是没有人可以解释为什么它失败了,这正是我真正想要的.
同样,你怎么说消耗尽可能多的内存,你想要一定的大小呢?
我在环境中将ANT_OPTS设置为"-Xms256m -Xmx1024m".设置此项后,我无法从命令提示符运行ant文件.它抛出了一个错误:
"初始化VM时发生错误无法为对象堆保留足够的空间无法创建Java虚拟机."
虽然我有足够的物理内存可用(超过2048米可用)来为ANT_OPTS分配1024m,但它仍会引发上述错误.可以有任何其他原因导致我无法将Xmx设置为1024m吗?
我试图通过MATLAB运行java程序.当我的输入文件很小时,它工作正常.但是,当我增加文件大小,并反过来增加我的堆大小时,我收到此错误消息:
VM初始化期间发生错误
无法为对象堆保留足够的空间
无法创建Java虚拟机.
当我运行我的java命令时,-Xmx1500m它工作正常,但当我增加它时,-Xmx2000m它会给出错误消息.我在的计算机有12 GB的内存,所以我不明白为什么将我的堆大小增加到2000应该是一个问题.我没有任何内存堵塞程序在运行.
我正在尝试使用以下代码行将2 gig ram分配给从bat文件启动的java应用程序:
@echo off
"%ProgramFiles(x86)%\Java\jre6\bin\java.exe" -Xmx2G -Xms1G -jar craftbukkit-1.2.5-R4.0.jar
pause
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试像这样运行时,它会发出错误说:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create teh Java virtual machine
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)
我目前在我的计算机上有8个ram,我知道我一直在使用最多3个演出(我让计算机大部分只是运行这个服务器文件).我有2x4gig的公羊棒,所以我知道它没有分开,我知道我有足够的免费公羊分配所以为什么它不会让我?我可以分配1536M(1.5演出)以及,但如果我跳到2G,它会给我这个错误.任何帮助表示赞赏
我正在努力使用Java堆空间设置.Windows上的默认Java是32位客户端,与操作系统版本无关(这是Oracle向所有用户推荐的).它似乎默认将最大堆大小设置为256 MB,这对我来说太少了.
我使用自定义启动器来启动应用程序.我希望它在具有大量RAM的计算机上使用更多内存,并且默认-Xmx512m使用RAM较少的内存.据我所知,唯一的方法是静态-Xmx设置(必须在启动时设置).
我有一个拥有8 GB RAM,64位Windows和32位Java 7的用户.JVM可见的最大内存是4G(通过查询返回OperatingSystemMXBean).我明白为什么,没问题.
由于某些原因,我的应用程序无法启动此用户-Xmx1300m,即使他有2.3G可用内存.他关闭了一些应用程序(拥有5G可用内存),但仍无法启动.报告给我的错误是:
error occured during init of vm
could not reserve enough space for object heap
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?可能是因为32位JVM只能解决"第一"4G内存问题,并且必须在前4 GB内提供1300M块?
除了要求每个人安装64位Java(不太可能接受)之外,我该如何解决这个问题?
编辑:如果它很重要,它是一个胖的Swing客户端,而不是一个小程序.
我有以下问题.当我尝试为eclipse.ini文件中的JVM提高内存时,我总是会遇到Could not create Java Virtual Machine异常.
我当前的内存设置是
-Xms1024m
-Xmx1024m
-Xmn256m
-Xss2m
Run Code Online (Sandbox Code Playgroud)
我想把它们提升到
-Xms2048m
-Xmx2048m
-Xmn512m
-Xss2m
Run Code Online (Sandbox Code Playgroud)
我正在运行32位Java,JDK 1.6.我有一台64位机器,内存为12GB.我不使用64位Java的原因是我们在开发应用程序时遇到了一些问题,因此我们切换回32位.
非常感谢您的建议.
编辑
好吧,所以这是我的堆栈跟踪,它发生在我尝试运行Eclipse时.另外请注意,我的Xms参数设置仅为512M,但是当它设置为1024M时它可以工作,但对于一个(甚至是大的)Web应用来说似乎太多了.

我知道这是一个常见的问题。我想知道从哪里开始。
在 windows server 2008 上运行 java,我们有 65GB 内存,它显示 25GB 空闲。(目前有几个人正在运行进程)。
systeminfo | grep -i memory
显示:
总物理内存:65, 536 MB 可用物理内存:26,512MB 虚拟内存:最大大小 69,630 MB 虚拟内存:可用 299 MB 虚拟内存:使用中:69、331 MB。
真的只是想知道我如何解决这个问题。
java -version
给我:
Error occured during initialization of VM
could not reserve enough space for object heap
更具体的问题:
java -version如果不指定 Xms 参数,java 命令(如)要使用多少内存?我的工作计算机上的eclipse正在使用VM参数-Xms40m和-Xmx512m,它真的很慢并冻结很多,我想将它增加到-Xmx1024m,但每次我这样做时都会收到错误"无法创建Java虚拟机".
该计算机具有3.5GB RAM,WIN XP(32位),Java 1.6_18
可能是什么原因?它与其他论点有关吗?
更新: 我更改了-vm参数,因此它将使用jrockit JDK附带的jvm.dll,并且我能够将最大堆大小增加到1024m.
此外,在我的家用电脑(WIN 7,32位,2GB RAM,java 1.7.0_21-b11)上,我也能够增加1024m.
试图在IntelliJ IDEA中使用maven安装模块.这样做会引发以下错误
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
Run Code Online (Sandbox Code Playgroud)
我的问题是:
编辑:当前vmoptions文件内容(使用Intellij IDEA 8.1.4)
-Xms32m
-Xmx256m
-XX:MaxPermSize=150m
-ea
Run Code Online (Sandbox Code Playgroud)