2014-12-14 2 views
0

Я обычно использую Weka из командной строки на системах Linux для выполнения выбора функций на атрибуты, как:Weka из командной строки Mac OS

java -cp PATH_TO_WEKA_JAR weka.attributeSelection.CfsSubsetEval ... (other parameters) 

Я пытаюсь запустить тот же код на Mac OS, но у меня есть это ошибка:

Exception in thread "main" java.lang.NoClassDefFoundError: weka.attributeSelection.CfsSubsetEval 
Caused by: java.lang.ClassNotFoundException: weka.attributeSelection.CfsSubsetEval 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

Как выполнить ту же команду в Mac OS? Не должно быть таким же, как это ОС на базе UNIX? Я также попытался включить путь в пределах " ", но нет никакой разницы. Что случилось?

+0

Вы пробовали предложения в моем ответе? – janos

ответ

0

Я думаю, что что-то не так с файлом Weka jar. Он говорит вам, что не может найти определенный класс в файле.

Mac OS значительно расширилась от Unix, что может привести к необходимости использования разного JAR-файла.

Это может помочь вам: Weka сайта скачать

+0

Но это то же самое, что работает под Linux – user3549081

+0

Ну, вот и все. Mac OS значительно ускользнула от Unix, что может привести к необходимости использования файла JAR с разными значениями. Это может помочь вам: http://www.cs.waikato.ac.nz/ml/weka/downloading.html – Xesau

0

Попробуйте эту команду:

jar tf PATH_TO_WEKA_JAR | grep weka.attributeSelection.CfsSubsetEval 

В выводе вы увидите строку с weka.attributeSelection.CfsSubsetEval.class. Если вы не видите такую ​​строку, тогда файл jar не содержит этот класс, и команда не может работать. В этом случае, попробуйте запустить это:

jar tf PATH_TO_WEKA_JAR | less 

, чтобы просто посмотреть, что находится в файле JAR.

Так или иначе, это простая проблема с путями классов: класс weka.attributeSelection.CfsSubsetEval просто не находится на вашем пути к классам. Вы должны найти правильный путь к банку, возможно других зависимостей, а также, и построить правильный параметр для использования в:

java -cp CORRECT_CLASSPATH weka.attributeSelection.CfsSubsetEval # ... your other params 
Смежные вопросы