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