无法为对象堆保留足够的空间来启动 JVM

2022-09-02 03:48:23

只是面对奇怪的问题。当我键入

java -version

我得到了

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

.

java -Xms64m -Xmx64m -version

此命令工作正常

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)

如果我改变xms,xmx到128m,我再次得到错误。

使用命令,我可以看到,我得到了超过192 mb的免费,所以为什么我仍然得到这个错误?topfree -m

Mem:    262144k total,    64760k used,   197384k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

谢谢


答案 1

在64位环境中使用32位版本的java时,我遇到了同样的问题。当在64操作系统中使用64 java时,没关系。


答案 2

看起来您尝试运行此命令的计算机只有256 MB内存。

也许 JVM 尝试分配一个 64 MB 内存的大型连续块。您释放的 192 MB 可能会分段为较小的部分,因此没有 64 MB 的连续块可供分配。

尝试使用较小的堆大小启动 Java 程序,例如:

java -Xms16m ...