2011-12-29 117 views
15

我正在嘗試增加java中的堆大小,以防止崩潰。我使用的建議路線:在java中增加堆大小爲weka

> java -Xmx500m -classpath 

,但我得到了以下錯誤:

-classpath requires class path specification 

我不知道這意味着什麼。有什麼建議麼?

回答

19

我發現的實際問題是文件'RunWeka.ini'中的'\Program Files (x86)\Weka-3-6'。我用記事本打開它,在文件中間有一行'maxheap = 512m'

我改行了'maxheap=2000m',保存了文件並重新加載了weka,這就解決了我的問題。

我不確定這是否是正確的方法來做到這一點,但它對我有效。

+0

這對我不起作用 – vikifor 2013-09-18 14:19:47

+0

你可以改變命令的最大堆大小同時運行weka.jar。同樣的事情 – Maxi 2015-12-14 01:47:44

+0

Weka的更新版本接受'-m'選項。所以你可以運行'weka -m 2g'。 – giusti 2018-02-19 18:13:57

11

省略-classpath選項。只使用-Xmx500m選項。

所以,而不只是:

java weka.core.Instances data/soybean.arff 

你這樣做:

java -Xmx500m weka.core.Instances data/soybean.arff 

如果你是通過腳本運行秧雞(RunWeka.bat爲例),那麼你需要修改腳本(用一些文本編輯器如記事本)。

3

您需要在-classpath之後指定類路徑,類似於PATH env變量,您需要指定Java可以找到這些類的路徑。

-Xmx500m設置看起來很好,除了我會建議使用512m。

+0

somethi驗證相同ng像:java -Xmx512m -c:\ Program Files(x86)\ Java? – screechOwl 2011-12-29 00:26:26

+1

您不需要爲Java庫設置類路徑,而只需要爲自己的類設置類路徑,所以如果您的編譯類位於工作目錄中,它可能是'java -Xmx512m -classpath .'。或者你將它們編譯成一個jar文件,然後你執行java'-Xmx512m -classpath c:\ path \ to \ your \ jarfile.jar' – Jonas 2011-12-29 00:48:17

1

我在Windows中運行Weka 3.6。這就是我所做的。 轉到Weka安裝目錄,你會發現一個RunWeka.bat文件。在文本編輯器中打開該文件,並在java命令行中添加-Xmx參數。

比如這個設置爲4GB內存, %_java%-Xmx4096m -classpath。 RunWeka -i \ RunWeka.ini -w \ weka.jar -c%_cmd% 「%2」

8

運行此命令在終端:

java -Xmx1024m -jar weka.jar 
2

對於Mac OS,你必須編輯配置文件,以增加Weka UI應用程序的堆大小。

我重複我寫了:Is there a workaround to solve "Java heap space" memory error when the max heap value has been already specified?

  1. 退出了Weka中,如果它正在運行。

  2. 將光盤放入/Applications/weka-XXX.app/Contents或安裝weka可執行文件的位置。那裏將有一個名爲Info.plist的文件。它是一個XML文本文件。我建議您將其副本保存到其他位置,因爲您需要在下一步中對其進行編輯。

  3. 在您最喜歡的文本編輯器中打開Info.plist(XML)文件,並查找名爲「VMOptions」的塊。應該有一個值爲「-Xmx256M」或類似specifies the maximum heap size。您應該將該值更改爲更大的值,例如「-Xmx1024M」。

  4. 開始Weka。

1

Weka的官方答案是正確的。但....關鍵是首先擺脫所有的JVM文件並安裝相關的32位或64位Java版本。不使用相關版本會導致許多問題,包括無法將堆增加到1024m以上(通過更改ini文件)。

2

在Ubuntu上我有同樣的問題 ,但我通過增加內存量使用的Java虛擬機運行 此解決它:秧雞-m1024米

0

使用這個命令做到這一點的最好辦法

java -Xmx1024m -[weka classifier] -t [training file path] 
0

上面的答案太舊了(最後一個是1年前)。 我在Windows 10

有同樣的問題,我的WEKA(版本3.8.1)我有一個問題要更新堆的大小,我固定它是通過增加一個環境變量(在控制面板)的方式如下:

JAVA_OPTS = -Xms30000m -Xmx30000m 

提示:只要確保RunWeka.ini使用這個環境變量。

在上面的例子中,我給WEKA 30GB。有用。

希望對一些人有幫助。

3

如果您在Windows上使用Weka 3.8.1,您可以通過編輯javaOpts參數來節省很多麻煩。參數maxheap不再使用,所以你可以在RunWeka.ini文件中設置javaOpts這樣的:

javaOpts= -Xmx1040m 

哪裏1040m是要分配的內存量。

請注意文件區分大小寫。

有很多方法可以設置它,但這是讓Weka在此版本上運行Windows環境的更快方式。

編輯:如果您希望Weka在Windows上使用多於​​1gb,則需要安裝JDK。普通的JRE不會這樣做。

0

你還應該看看默認的線程堆棧大小20MB是否足夠。增加值,以在文件/Applications/weka-3-8-1-oracle-jvm.app/Contents/Info.plist(上MAC)50MB象下面這樣:

<string>-Xss50M</string> 
0

If we are using Weka Workbench CLI or Knowledge explorer we need to change as below.

作爲文檔建議運行時參數應爲-Xmx [size_required] m其中[size_required]是您希望保留的內存大小以避免內存異常。

打開RunWeka.ini

Define maxheap=[size_required]G

在我來說,我一直maxheap = 4G,人們可以像maxheap =4096米和添加-Xmx#maxheap#設置爲#設置所有運行選項(前綴與 「cmd_」)部分旁邊的java命令 像下面

cmd_default=javaw -Xmx#maxheap# ............... 
cmd_console=cmd.exe /K start cmd.exe .................. 
cmd_explorer=java -Xmx#maxheap# ................. 
cmd_knowledgeFlow=java -Xmx#maxheap#.................... 

maxheap=4G 

通過重新啓動了Weka和幫助>>系統的系統信息