我在Windows上安装了最新版本的Weka
http://www.cs.waikato.ac.nz/ml/weka/
然后我尝试从命令行运行Weka的一个功能:
java weka.core.converters.TextDirectoryLoader -dir text_example > text_example.arff
这是对这个页面的引用: http://weka.wikispaces.com/Text+categorization+with+WEKA
但Weka返回了以下错误:
Microsoft Windows [Version 6.1.7600]Copyright (c) 2009 Microsoft Corporation. All rights reserved.Exception in thread "main" java.lang.NoClassDefFoundError: weka/core/converters/TextDirectoryLoaderCaused by: java.lang.ClassNotFoundException: weka.core.converters.TextDirectoryLoader at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source)Could not find the main class: weka.core.converters.TextDirectoryLoader. Program will exit.
我已经设置了CLASSPATH环境变量指向Weka的jar文件。
我哪里做错了?
回答:
你运行命令的shell显然没有正确设置CLASSPATH环境变量,否则就不会出现ClassNotFoundException。你可以选择不使用环境变量,而是在命令行中指定类路径:
java -cp path/to/weka.jar weka.core.converters.TextDirectoryLoader -dir [...]
你还可以通过在cmd shell中执行echo %CLASSPATH%
来检查环境变量是否设置正确。