[英]Could not reserve enough space for object heap to start JVM
剛遇到奇怪的問題。 當我打字
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
謝謝
在64位環境中使用32位版本的java時遇到了同樣的問題。 在64 OS中使用64 java時,沒關系。
看起來你試圖運行它的機器只有256 MB的內存。
也許JVM嘗試分配一個64 MB內存的大型連續塊。 你有空的192 MB可能被分成小塊,因此沒有64 MB的連續塊可以自由分配。
嘗試使用較小的堆大小啟動Java程序,例如:
java -Xms16m ...
根據這篇文章,此錯誤消息表示:
堆大小比計算機的物理內存大。
編輯:我想,堆不是唯一保留的內存。 至少還有像PermGenSpace這樣的其他JVM設置要求內存。 堆大小為128M,PermGenSpace為64M,您已經填充了可用空間。
為什么不縮小其他內存設置以釋放堆空間?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.