2010-02-25 75 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