2013-07-22 44 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。