我正在尝试为经常崩溃的weka增加Java堆大小。 我使用了建议的代码行:
> java -Xmx500m -classpath
但我收到了以下错误:
-classpath requires class path specification
我不确定这是什么意思。有什么建议吗?
'RunWeka.ini'
中,该文件位于 '\Program Files (x86)\Weka-3-6'
。我用记事本打开它,发现在文件中间有一行代码 'maxheap = 512m'
。'maxheap=2000m'
,保存文件并重新加载weka,这样问题就解决了。在您的终端中运行此命令:
java -Xmx1024m -jar weka.jar
-classpath
选项,改用只有 -Xmx500m
选项。java weka.core.Instances data/soybean.arff
你要做的是:
java -Xmx500m weka.core.Instances data/soybean.arff
如果您通过某些脚本(例如RunWeka.bat)运行weka,则需要修改该脚本(使用像记事本这样的文本编辑器)。
如果您在Windows上使用Weka 3.8.1,您可以通过编辑 javaOpts
参数来避免许多麻烦。参数 maxheap
已不再使用,因此您可以在 RunWeka.ini 文件中像这样设置 javaOpts
:
javaOpts= -Xmx1040m
这里的1040m
是您想要分配的内存量。
请注意,文件区分大小写。
有很多设置方式,但这是在 Windows 环境下以此版本运行 Weka 的较快方式。
编辑:如果您希望在 Windows 上使用超过1gb
的 Weka,您需要安装 JDK。常规的 JRE 是无法实现的。
RunWeka.ini
文件中的maxheap
参数。在Ubuntu上我遇到了相同的问题,但是我通过增加Java虚拟机内存使用量来解决了这个问题。运行以下命令:weka -m 1024m。
对于Mac OS,您需要编辑一个配置文件以增加Weka UI应用程序的堆大小。
我在是否有解决“Java堆空间”内存错误的解决方法,当已经指定最大堆值时?中重复了我写的内容。
如果Weka正在运行,请退出。
进入 /Applications/weka-XXX.app/Contents 目录,或者你安装Weka可执行文件的位置。那里会有一个名为 Info.plist
的文件,它是一个XML文本文件。建议您将其复制到另一个位置,因为您需要在下一步中编辑它。
使用您喜欢的文本编辑器打开 Info.plist
(XML)文件,并查找一个块,其中写着"VMOptions"。应该有一个值说 "-Xmx256M" 或类似的内容指定了最大堆大小。您应该将该值更改为更大的值,例如 "-Xmx1024M"。
启动Weka。
在-classpath
之后需要指定一个类路径,类似于PATH
环境变量,需要指定Java可以找到类的路径。
-Xmx500m
的设置看起来不错,但我建议使用512m。
java -Xmx512m -classpath .
命令。或者你可以将它们编译成一个jar文件,然后使用java -Xmx512m -classpath c:\path\to\your\jarfile.jar
命令。 - Jonas