2013-06-12 54 views
0

我正在寫一個C++項目,偶爾會使用調用Weka的system來獲取一些機器學習信息。首先,我想確保培訓模式(training.model)是最新的。所以,在主要開始時,我打電話:系統調用與Weka的C++

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

我覺得我在正確的鄰居,但我不能正確的斜槓,我不喜歡絕對路徑,因爲文件夾有空格,這使得它更混亂。有任何想法嗎?非常感謝幫助。

回答

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