在Java中为Weka增加堆大小

21

我正在尝试为经常崩溃的weka增加Java堆大小。 我使用了建议的代码行:

> java -Xmx500m -classpath

但我收到了以下错误:

-classpath requires class path specification

我不确定这是什么意思。有什么建议吗?

17个回答

23
我发现问题实际上出现在文件 'RunWeka.ini' 中,该文件位于 '\Program Files (x86)\Weka-3-6'。我用记事本打开它,发现在文件中间有一行代码 'maxheap = 512m'
我将该行代码更改为 'maxheap=2000m',保存文件并重新加载weka,这样问题就解决了。
我不确定这是否是正确的方法,但对我来说有效。

你可以在运行weka.jar时从命令行中修改最大堆大小。这和改变最大堆大小的方法是一样的。 - Pandit
Weka的更新版本支持选项“-m”。因此,您只需运行“weka -m 2g”。 - giusti
对于版本3.8,我添加了maxheap = 5000m,但我在Help>>SystemInfo memory.max中看不到任何更改。如果在这个级别上进行了更改,则也没有反映出来。 - Morse

13

在您的终端中运行此命令:

java -Xmx1024m -jar weka.jar

12
不要使用 -classpath 选项,改用只有 -Xmx500m 选项。
因此,不是只写:
java weka.core.Instances data/soybean.arff

你要做的是:

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

如果您通过某些脚本(例如RunWeka.bat)运行weka,则需要修改该脚本(使用像记事本这样的文本编辑器)。


9

如果您在Windows上使用Weka 3.8.1,您可以通过编辑 javaOpts 参数来避免许多麻烦。参数 maxheap 已不再使用,因此您可以在 RunWeka.ini 文件中像这样设置 javaOpts :

javaOpts= -Xmx1040m

这里的1040m是您想要分配的内存量。

请注意,文件区分大小写。

有很多设置方式,但这是在 Windows 环境下以此版本运行 Weka 的较快方式。

编辑:如果您希望在 Windows 上使用超过1gb 的 Weka,您需要安装 JDK。常规的 JRE 是无法实现的。


5

4

在Ubuntu上我遇到了相同的问题,但是我通过增加Java虚拟机内存使用量来解决了这个问题。运行以下命令:weka -m 1024m。


3

对于Mac OS,您需要编辑一个配置文件以增加Weka UI应用程序的堆大小。

我在是否有解决“Java堆空间”内存错误的解决方法,当已经指定最大堆值时?中重复了我写的内容。

  1. 如果Weka正在运行,请退出。

  2. 进入 /Applications/weka-XXX.app/Contents 目录,或者你安装Weka可执行文件的位置。那里会有一个名为 Info.plist 的文件,它是一个XML文本文件。建议您将其复制到另一个位置,因为您需要在下一步中编辑它。

  3. 使用您喜欢的文本编辑器打开 Info.plist(XML)文件,并查找一个块,其中写着"VMOptions"。应该有一个值说 "-Xmx256M" 或类似的内容指定了最大堆大小。您应该将该值更改为更大的值,例如 "-Xmx1024M"。

  4. 启动Weka。


3

-classpath之后需要指定一个类路径,类似于PATH环境变量,需要指定Java可以找到类的路径。

-Xmx500m的设置看起来不错,但我建议使用512m。


java -Xmx512m -c:\Program Files(x86)\Java? - screechOwl
1
你不需要为Java库设置类路径,只需为自己的类设置即可。如果你编译后的类在工作目录中,那么可以使用java -Xmx512m -classpath .命令。或者你可以将它们编译成一个jar文件,然后使用java -Xmx512m -classpath c:\path\to\your\jarfile.jar命令。 - Jonas

1
官方Weka的回答是正确的。但是......关键是首先摆脱所有JVM文件并安装相关的32位或64位Java版本。不使用相关版本会导致许多问题,包括无法通过更改ini文件将堆叠加到1024m以上。

1
我正在Windows上运行Weka 3.6。这是我所做的。 进入Weka安装目录,您将找到一个RunWeka.bat文件。在文本编辑器中打开此文件,并在java命令行中添加-Xmx参数。
例如,将其设置为4GB内存, %_java%-Xmx4096m-classpath . RunWeka-i .\ RunWeka.ini-w .\ weka.jar-c%_cmd%“%2”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接