2010-02-25 68 views
2

我正在使用一个java程序,它需要大量内存。 (理想我想给它RAM的在java程序中增加堆大小给出问题

10 GB)

这个程序使用一个bat文件运行。它具有以下命令来设置java堆大小

java -Xmx896m weka.gui.explorer.Explorer 

它分配它896 MB

我正在使用Windows 2003 64位标准OS的高端64位服务器上运行此程序。

当我尝试改变bat文件,增加堆大小,以让使用

java -Xmx1896m weka.gui.explorer.Explorer 

它给出了一个错误消息说1.8 GB - "Could not reserve enough space for object heap "和程序犯规开始

我怎么给这个程序堆大小至少为4 GB

+0

错误信息? – 2010-02-25 05:10:21

+0

错误消息是“无法为对象堆预留足够的空间” – 2010-02-25 05:12:29

+0

错误消息是无法为对象堆预留足够的空间“ – silverkid 2010-02-25 05:13:05

回答

2

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

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

只为信息,这个错误应提高时,JVM试图调用mmap函数与无效的大小,以获得从操作系统堆中的地址空间。

+0

-d64 -Xmx?g是必须的,您也可以尝试-server – 2010-02-25 05:22:27

+0

IIRC,JVM使用在64位机器-d64默认情况下(至少我的JVM必须通过-d32尝试使用32位模式,并且失败) – jkff 2010-02-25 05:30:41

+0

这是我添加-d64, 时出现的错误“此Java实例的确如此不支持64位JVM。 请安装所需的版本。 “ – silverkid 2010-02-25 06:46:37