Я пишу проект C ++, который иногда будет использовать system
позвоните в Weka, чтобы получить информацию о машинном обучении. Сначала я хотел бы убедиться, что модель обучения (training.model
) до даты. Итак, в начале основного я звоню:
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
,
Я чувствую, что нахожусь в правильном соседстве, но я не могу получить правильные слэши, и я предпочел бы не связываться с абсолютными путями, потому что в папках есть пробелы, и это делает его еще более запутанным. Есть идеи? Помощь очень ценится.
Откройте окно терминала / cmd и попробуйте запустить команду в строке терминала / cmd. Ниже приведен пример командного сценария cmd для Windows. Ваша проблема, скорее всего, настройки Java classpath, а не 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
Других решений пока нет …