2013-07-22 43 views
0

我想在啓動程序時設置Xmx參數。如果我將它設置爲1408M,則JRE啓動正常。如果我將它設置爲1536M,我得到Java堆空間 - 不能足夠大

"Could not create the java virtual machine". 

據我所知,它試圖保留連續的存儲空間,但我上運行,該機擁有16GB的內存和13GB這目前是免費。我正在運行的程序已經沒有了堆空間並且崩潰了。有什麼我可以解決這個問題嗎?

+7

這是一個32位的JVM嗎? – hexafraction

+0

您無法使用Java 32位分配超過1.5GB的內存。 – NINCOMPOOP

回答

2

使用64位JVM。 32位JVM受限於(取決於操作系統)至多3 GByte(在Linux上,我有約1.5 GB的限制)。

+0

太棒了。我會盡快將其標記出來。 – mrK

0

由於尋址限制以及出於其他原因需要使用內存,32位JVM限制在大約1.5 GB的堆空間。在Windows上,2 GB分配給進程,0.5用於非堆內存。如果您可以在Windows Server或Linux上使用PAE,則可以分別處理3 GB或4 GB的數據。

否則使用64位JVM。