2013-12-21 61 views
0

我在將大型數據集加載到Jena時遇到了堆錯誤。 `有沒有什麼辦法可以爲JVM(Java)分配一個大堆空間。如何使用命令行向JAVA分配空間

我知道我可以通過更改eclipse.ini來實現這一點。但是,有什麼方法可以使用Linux中的命令行來增加Java堆大小(我使用64GB RAM服務器:運行12.04 Ubuntu LTS服務器)?

由於堆空間不足導致的錯誤是:線程主gc開銷限制超出的例外。

此外,我怎麼能找到,我可以爲我的系統

我試圖出口設置的堆空間的最大數量JAVA_OPTS = -Xms4096m -Xmx4096m,但最終得到的錯誤: 慶典:出口:-Xms4096m': not a valid identifier bash: export: -Xmx4096m 「:不是一個有效標識符

+1

研究'Xmx'和'Xms'選項 –

+0

@JarrodRoberson我試過,但通過JVM_OPTIONS將它們設置不適合我。另外我怎樣才能找到我可以爲我的系統設置的最大堆空間量。非常感謝回覆...我在發佈問題之前閱讀帖子..但因爲我是一個新手在linux ..我沒有得到太多 –

+1

這種信息很容易找到任何搜索引擎。 – Leo

回答

4

嘗試(注意引號不是可選的兩個詞)

export JAVA_OPTS="-Xms4096m -Xmx4096m" 

或者,甚至

export MIN="4096m" # <-- Those quotes are (one word). 
export MAX="4096m" 
export JAVA_OPTS="-Xms$MIN -Xmx$MAX" # <-- single quotes would break variable expansion 
+0

I有64 GB的RAM ..很好如果我爲Java堆空間分配16GB RAM –

+0

@AliceEverett測試它,但我可能會更高...(取決於我在做什麼)... –

+0

還有什麼「 m「出口JAVA_OPTS =」 - Xms4096m -Xmx4096「.. signify..im只是有點好奇......感謝很多幫助到目前爲止 –

5
java -Xms4096m -Xmx4096m [YourAppHere] 

此命令將在啓動(在-Xms4096m選項)分配的堆內存4GB(或4096 MB),並且將具有4GB(在-Xmx4096m的最大堆內存大小選項)。

很明顯,您可以將數字更改爲任何您想要的尺寸。如果計算機需要增加內存大小(每次增加內存大小,它會使分配量增加一倍),所以如果你有那麼多的內存,就可以在應用程序的開始時分配它。

+0

[YourAppHere]意味着什麼。也感謝回答:) –

+0

您正在運行的java文件 – oconnecp

+0

實際上我運行Java字節碼(即可執行的等效的C++)..我可以在這裏指定可執行文件名 –