Java堆空间 - 不能做得足够大

时间:2013-07-22 15:13:00

标签: java jvm heap heap-memory jvm-arguments

我正在尝试在启动程序时设置Xmx参数。如果我将它设置为1408M,则JRE启动正常。如果我将它设置为1536M,我会

"Could not create the java virtual machine".  

据我所知,它正在尝试保留连续的内存空间,但我正在运行的机器有16GB的RAM,目前有13GB的内存空闲。我正在运行的程序耗尽了堆空间并且崩溃了。我能做些什么来解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用64位JVM。 32位JVM是有限的(取决于操作系统)至多3 GByte(在Linux上我有一个约1.5 GByte的限制)。

答案 1 :(得分:0)

由于寻址限制以及出于其他原因需要内存,32位JVM限制为大约1.5 GB的堆空间。在Windows上,2 GB分配给进程,0.5用于非堆内存。如果您可以在Windows Server或Linux上使用PAE,则最多可以分别处理3或4 GB。

否则使用64位JVM。