一尘不染

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

linux

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

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,则会再次出现错误。

使用top命令,free -m我可以看到,我有超过192 MB的空闲空间,那么为什么我仍然收到此错误?

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

谢谢


阅读 294

收藏
2020-06-03

共1个答案

一尘不染

您尝试在其上运行此计算机的机器似乎只有256 MB内存。

也许JVM试图分配一个大的,连续的64 MB内存块。可用的192 MB可能会分成较小的碎片,因此不会有连续的64 MB可用块分配。

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

java -Xms16m ...
2020-06-03