Weka из командной строки Mac OS

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

 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? Я также попытался включить путь в " " но разницы нет. Что не так?

2 ответа

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

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

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

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

В этом вам может помочь: Weka Site download

Другие вопросы по тегам