我想将目录中的文本文件转换为arff文件。当我在Linux终端运行以下命令时:
java weka.core.converters.TextDirectoryLoader -dir weka
… 我得到了以下错误:
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(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:268)Could not find the main class: weka.core.converters.TextDirectoryLoader. Program will exit.
请建议如何解决此错误。
回答:
这个错误消息告诉我们,TextDirectoryLoader类不在您当前的搜索路径中。可能是您的Weka版本中没有安装这个类。
根据他们的wiki,这个类只在Weka 3.5.3版本以上可用。请再次检查您的安装目录,查找这个类。如果找不到,可以使用TextDirectoryToArff。
如何更改类路径
您需要编辑位于您主目录(~)的.bashrc文件(使用sudo gedit或sudo vim),并添加以下行:
export CLASSPATH=$CLASSPATH:[new_path]
其中[new_path]类似于/home/users/username/downloads/weka/weka.jar
编辑:注意到您应该将weka.jar添加到类路径中,而不是Weka安装目录。