2010-04-06 140 views
3

我有一个程序需要大量内存,并且希望将最大堆空间设置为6024MB。 的Java给我的错误:java中的最大堆空间限制

Invalid maximum heap size: -Xmx6024m 
The specified size exceeds the maximum representable size. 

有没有解决办法?

+0

正如ThomasLötzer指出的那样,问题可能是您正在尝试在32位环境中执行此操作。如果情况并非如此,请告诉我们一些关于您的JVM和OS环境的信息! – 2010-04-06 09:29:14

+0

是的,不幸的是我似乎在32位环境下工作:( – Christian 2010-04-06 09:39:55

+0

好的。盒子有多少内存(可以使用),还有其他可以使用RAM的盒子吗? – 2010-04-06 10:35:47

回答

5

在不同的Java虚拟机之间可以分配多少个堆有很大的区别。例如。 Sun的虚拟机需要将内存作为操作系统的一个块分配。对于Oracle的JRockit VM,此限制不存在。它也是操作系统的依赖 - 例如与Windows XP相比,我能够使用Linux为Sun的VM分配更多的堆。另外请注意,我读的地方,问题消失了64位操作系统...

编辑:

Here's a blog entry大约在32位Windows操作系统的Sun的JVM和Java堆空间的问题。

1

这是一个64位虚拟机吗?如果是这样,你应该可以像你一样使用开关。