在java程序中增加堆大小会带来问题

在java程序中增加堆大小会带来问题,java,Java,我正在使用一个需要大量ram的java程序。(理想情况下,我会给它 10 GB内存) 该程序使用bat文件运行。其中包含以下命令来设置java堆大小 java -Xmx896m weka.gui.explorer.Explorer 分配给它的896MB 我正在一台高端64位服务器上运行这个程序,该服务器使用windows 2003 64位标准操作系统 当我尝试更改bat文件以将堆大小增加到1.8GB时,使用 java -Xmx1896m weka.gui.explorer.Explorer

我正在使用一个需要大量ram的java程序。(理想情况下,我会给它

10 GB内存)

该程序使用bat文件运行。其中包含以下命令来设置java堆大小

java  -Xmx896m weka.gui.explorer.Explorer
分配给它的
896MB

我正在一台高端64位服务器上运行这个程序,该服务器使用windows 2003 64位标准操作系统

当我尝试更改bat文件以将堆大小增加到1.8GB时,使用

java  -Xmx1896m weka.gui.explorer.Explorer
它会给出一条错误消息-
“无法为对象堆保留足够的空间”
,程序无法启动


如何使该程序的堆大小至少达到
4 GB

您是否尝试使用
-d64
指定JVM使用64位版本

java -d64 -Xmx2g weka.gui.explorer.Explorer

仅供参考,当JVM试图调用
mmap
函数从大小无效的操作系统获取堆的地址空间时,应该会出现此错误。

错误消息是“无法为对象堆保留足够的空间”错误消息是无法为对象堆保留足够的空间“-d64-Xmx?g是必须的,您也可以尝试-serverIIRC,JVM默认情况下在64位机器上使用-d64(至少我的JVM必须通过-d32才能尝试使用32位模式,但失败了)。这是我在添加-d64时遇到的错误,”此Java实例不支持64位JVM。请安装所需的版本。”这意味着,尽管该机器上的操作系统是64位的,但JDK安装的是32位的,您应该选择64位版本重新安装它。