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

虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建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,它不允许分配它。

其他回答

假设你的类在包mypackage中叫做Test。像这样运行代码:

java -Xmx1024m mypackage.Test

这将为您的代码保留1024mb的堆空间。如果你想要512 MB,你可以使用:

java -Xmx512m mypackage.Test

在1024m, 512m等单位使用小m

我有适量的内存设置,但对我来说,它是使用64位intellij和32位jvm。一旦我切换到64位虚拟机,错误就消失了。

我得到了同样的错误,它得到解决时,我删除临时文件使用%temp%和重新启动eclipse。

不需要做任何事情,只是在POM文件更改如下

<configuration>
    <maxmemory>1024M</maxmemory>
</configuration>

虚拟机初始化时出错 无法为1572864KB对象堆预留足够的空间

我在设置中改变了内存的值。级文件 从1536到512,很有帮助