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

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

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

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


当前回答

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

OR

更改ant调用,如下所示。

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

这对我很管用。

其他回答

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

结合-Xmx512M使用-d64确保您运行的是64位虚拟机。在64位的机器上,我以为我运行的是64位的虚拟机,但不是。在安装64位Java之后,-d64选项可以工作,-Xmx允许更大的内存大小。

java -d64 -Xmx512M mypackage.Test

如果您运行的是32位JVM,那么将堆大小更改为较小可能会有所帮助。你可以通过直接向java传递参数或通过环境变量来做到这一点,

java -Xms128M -Xmx512M
JAVA_OPTS="-Xms128M -Xmx512M"

对于64位JVM,更大的堆大小,如-Xms512M -Xmx1536M应该可以工作。

为Java7运行java -version或java -d32, java——d64来检查您正在运行的版本。

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

-Xms2G
-Xmx2G

to

-Xms256M
-Xmx256M

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

单击“开始”->控制面板->系统->高级(tab)->环境变量->系统变量->新建:

Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M