为啥 WEKA 不从命令行运行?

Posted

技术标签:

【中文标题】为啥 WEKA 不从命令行运行?【英文标题】:Why is WEKA not running from the command line?为什么 WEKA 不从命令行运行? 【发布时间】:2012-02-14 16:26:19 【问题描述】:

对不起,这似乎很简单,但我似乎无法理解。

我已经下载并安装了 Windows 版本的 WEKA,但我似乎无法从命令行调用它。

我添加了一个WEKAHOME 环境变量,指向包含weka.jar 的目录,并将它添加到我的路径中,并附加了/weka.jar..

我正在尝试这个命令:java weka.classifiers.j48.J48 -t %WEKAHOME%/data/iris.arff

然后我得到以下错误输出。

线程“主”java.lang.NoClassDefFoundError 中的异常: weka/classifiers/j48/ J48 引起:java.lang.ClassNotFoundException: weka.classifiers.j48.J48 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(Unknown Source) 找不到主类:weka.classifiers.j48.J48。程序将退出。

我能做些什么来解决这个问题?

【问题讨论】:

您是否正确设置了 java 类路径 【参考方案1】:

就是因为这个weka.classifiers.j48.J48,那是Weka文档的错误,应该是:weka.classifiers.trees.J48

(注意:下面的 cmets 不再相关。这里的答案有效,记得按照 Thomas Jungblut 下面的说明设置类路径。)

【讨论】:

可能是小写的 j。让我检查一下,一秒钟。 这里:weka.classifiers.trees.J48 这里有一个分类器列表可供选择:weka.sourceforge.net/doc/weka/classifiers/Classifier.html 如果他不设置类路径,他将找不到该类。使用 java -cp weka.jar weka.classifiers.trees.J48 添加 jar。

以上是关于为啥 WEKA 不从命令行运行?的主要内容,如果未能解决你的问题,请参考以下文章

带有 Weka 命令行的 ProcessBuilder/Runtime.exec() 演示特殊行为

LibSVM 使用 Weka 命令行

在命令行中导出 Weka 预测

Weka 从命令行预测到 CSV

尝试将 AdaBostM1 weka 分类器与配置用于修剪的 J48 决策树分类器一起使用时,Weka 引发命令行错误

maven 不从命令行检测测试