每次我试图运行该程序时,都会重复得到以下异常。

虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。

我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。

我怎样才能消除这个错误?


当前回答

我在使用javac时遇到了这个问题,它似乎没有选择命令行选项,

-bash-3.2$ javac -Xmx256M HelloWorldApp.java 
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

所以这里的解决方案是设置_JAVA_OPTIONS

-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java 
Picked up _JAVA_OPTIONS: -Xmx256M

这编译得很好。

我在RAM很大但内存上限较低的机器上遇到过这种情况。Java决定分配一个大堆,因为它检测到机器中的ram,但由于ulimit,它不允许分配它。

其他回答

在我的情况下,我不能增加org.gradle.jvmargs=-Xmx…在它。超过1GB的属性。它没有工作,因为我的机器上安装了两个Java,一个是32位的(Gradle正在使用这个),另一个是64位的。我通过添加指向64位Java的JAVA_HOME环境变量解决了这个问题。

不管怎样,下面是解决方法: 单击“开始”->控制面板->系统->高级(tab)->环境变量->系统变量->新建: 变量名:_JAVA_OPTIONS 变量值:-Xmx512M

OR

更改ant调用,如下所示。

   <exec
        **<arg value="-J-Xmx512m" />**
    </exec>

这对我很管用。

错误:

对于“初始化vm时发生错误,无法为对象堆jboss预留足够的空间”的错误。

根本原因:

JVM内存分配不当/不足,如下所述。 例如,jboss-eap-6.2\bin\standalone.conf中的JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxPermSize=256m"或jboss-eap-6.2\bin\standalone.conf.bat中的"JAVA_OPTS=-Xms1G -Xmx1G -XX:MaxPermSize=256m",这只是JVM内存分配池参数。

解决方法:

Increase the heap size. To increase the heap size, goto -> jboss-eap-6.2\bin\standalone.conf.bat or jboss-eap-6.2\bin\standalone.conf change ->JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m" where -Xms is Minimum heap size and -Xmx is Maximum heap size. Usually its not recommanded to have same size for min and max. If you are running your application from eclipse, Double click on the server select 'open launch configuration' you will be redirected to the window 'Edit launch configuration properties'. In this windown goto the tab '(x)=Arguments'. In VM Arguments, define your heap size as mentioned below "-Dprogram.name=JBossTools: JBoss EAP 6.1+ Runtime Server" -server -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true

我知道这里已经有很多答案了,但没有一个能帮到我。最后,我打开文件/etc/elasticsearch/jvm。选项和更改:

-Xms2G
-Xmx2G

to

-Xms256M
-Xmx256M

这为我解决了问题。希望这能帮助到这里的其他人。

这也可能是由于在32位HotSpot vm上设置过大而导致的,例如:

-Xms1536m -Xmx1536m

这可能/将会工作的地方:

-Xms1336m -Xmx1336m