堆内存-增加Java堆空间:Eclipse vs. BAT-script



我想为Eclipse中的程序增加Java堆空间。在虚拟机参数中使用-Xmx1500m增加堆空间没有问题,但是如果我使用6 GB增加堆空间,我会得到以下错误:

最大堆大小无效:-Xmx6G

指定的大小超过可表示的最大大小。

如果我导出我开发的程序并在控制台中以bat-script的jar文件运行它,则不会出现此问题。

有人知道为什么这个问题只发生在Eclipse中吗?

我系统:

  • Windows 7, 64Bit
  • 16gb内存
  • Eclipse Juno, 64Bit

消息告诉您,对于Eclipse试图启动的JVM可执行文件来说,-Xmx6G太大了。它对这么小的数字抱怨的事实告诉我,Eclipse必须尝试启动32位JVM而不是64位JVM。相比之下,当您从命令行运行时,您将获得64位JVM。

我的结论是,您已经安装了32位和64位JRE/JDK,并且您已经以某种方式将Eclipse配置为为应用程序使用32位JVM。

(我也会尝试用小写的'g'…)

试着阅读这个文档:http://javahowto.blogspot.co.uk/2006/06/6-common-errors-in-setting-java-heap.html .它提供了6个与Java堆大小设置相关的最常见错误。在你的情况下,问题如下:

问题:堆大小比JVM认为您需要的要大。例如:

   java -Xmx256g BigApp
   Invalid maximum heap size: -Xmx256g
   The specified size exceeds the maximum representable size.
   Could not create the Java virtual machine.

解决方案:

The fix is to lower it to a reasonable value: java -Xmx256m BigApp

谢谢Stephen C!

不知何故安装了两个jre(我假设是通过奇怪的更新)。完全重新安装Java解决了这个问题。但是我不能在eclipse中更改JRE…

最新更新