2013-05-28 38 views
5

我正在使用java「1.6.0_24」OpenJDK。有時當我運行我的程序時,我所得到的只是一條消息無法創建Java VM ---我如何獲得更詳細的錯誤消息?

Could not create the Java virtual machine.". 

某些其他時候,程序運行得很好。

是否有一些選項可以添加以獲得更詳細的輸出,以確切的錯誤(甚至可能類似於核心轉儲?)。

這可能不是因爲在這種情況下,相關的堆大小,它確實給一個明確而清晰的錯誤信息,如: -

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

這我能解決與設置-Xms和-Xmx適當。但是,JVM退出而不打印任何其他內容是非常無益的。

爲了澄清,我的問題是關於哄更多詳細的錯誤消息或某種狀態文件/核心轉儲,然後我可以使用它進行調試。

+0

那麼我有一臺64 GB RAM的機器,我將-Xms設置爲100M。雖然這臺機器是集羣的一部分,但可用內存通常大約爲16GB(我通過在獨立終端上運行頂部來驗證)。同樣的問題也是如此...(我有其他機器內存少得多,這就是爲什麼我設置-Xms爲100M來解決_that_問題) – owagh

+0

我不確定什麼可以比這更詳細。內存分配是JVM初始化的第一件事情之一。顯然,你的問題來自-Xmx而不是-Xms參數。 JVM在初始化時將堆分配給最大大小。您的最高限額太高。在32位JVM上,你只能使用不超過1.5GB – gigadot

回答

1

從一個小堆開始。將-Xms設置爲遠低於-Xmx。將最大堆大小-Xmx增加到1024(或2048取決於您的應用程序)。設置-Xms到512左右(我會說Xmx的一半)

+0

我已經試過了。這確實解決了一些問題,但不是全部。如果您閱讀問題的後半部分,它確實表示我已經使用-Xms和-Xmx來解決與缺少內存相關的一些問題。雖然謝謝! – owagh

+0

@owagh你使用什麼操作系統?我想這是Unix/Linux,如果是這樣的味道? – avijendr

相關問題