0

我正在编写一个 C++ 项目,它偶尔会system调用 Weka 来获取一些机器学习信息。首先,我想确保训练模型 ( training.model) 是最新的。因此,在 main 的开头,我调用:

system("\"java weka.classifiers.trees.J48 -t ML_data.arff -d training.model\"");

这给了Error: could not find or load main class weka.classifiers.trees.J48. 我知道这意味着什么,所以我将名为 的整个 Weka 项目文件夹移到了Weka-3-6我的项目所在的目录中。所以我尝试了:

system("\"java \Weka-3-6\\weka.classifiers.trees.J48 -t ML_data.arff -d training.model\"");

但这又回来了Error: could not find or load Weka-3-6\weka.classifiers.trees.J48

我觉得我在正确的附近,但我无法正确使用斜线,而且我不想弄乱绝对路径,因为文件夹有空格,这使得它更加混乱。有任何想法吗?非常感谢您的帮助。

4

1 回答 1

0

打开终端/cmd 提示并尝试在终端/cmd 提示中运行您的命令。以下是 Windows 的示例 cmd 批处理脚本。您的问题很可能是 java 类路径设置而不是 weka 问题。如果您成功执行以下命令,请在 C++ 中再次尝试您的命令。

SET WEKA_HOME=C:\Program Files\Weka-3-7
SET CLASSPATH=%CLASPATH%;%WEKA_HOME%\weka.jar
SET HEAP_OPTION=-Xms4096m -Xmx8192m
SET JAVA_COMMAND=java %HEAP_OPTION%
%JAVA_COMMAND% weka.core.SystemInfo
于 2013-06-17T09:06:59.093 回答