我下载并解压了以下WEKA版本的weka-3-4-19。这是在linux操作系统上。我希望通过命令行使用WEKA,但是在执行时
java weka.classifiers.tress.j48.J48我收到以下错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: weka/classifiers/tress/j48/J48
Caused by: java.lang.ClassNotFoundException: weka.classifiers.tress.j48.J48
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: weka.classifiers.tress.j48.J48. Program will exit.有人能帮我解决这个问题吗?谢谢。
Edit1:
在尝试java -jar weka.jar命令时
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:432)
at java.awt.Frame.<init>(Frame.java:403)
at javax.swing.JFrame.<init>(JFrame.java:202)
at weka.gui.GUIChooser.<init>(GUIChooser.java:98)
at weka.gui.GUIChooser.main(GUIChooser.java:285)
No X11 DISPLAY variable was set, but this program performed an operation which requires it.编辑2:
试着用java.weka.classifiers.trees.J48
Exception in thread "main" java.lang.NoClassDefFoundError: weka/classifiers/tress/J48
Caused by: java.lang.ClassNotFoundException: weka.classifiers.tress.J48
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: weka.classifiers.tress.J48. Program will exit.编辑3:
{cslinux2:~/weka-3-4-19} echo $CLASSPATH
/people/cs/j/jld082000/weka-3-4-19/weka.jar:
{cslinux2:~/weka-3-4-19} java weka.classifiers.trees.J48
Weka exception: No training file and no object input file given.
General options:
-t <name of training file>
Sets training file.
-T <name of test file>
Sets test file. If missing, a cross-validation will be performed on the training data.发布于 2011-07-09 15:47:23
这仅仅意味着weka.classifiers.tress.j48.J48类不在类路径中。您可以使用java开关或设置CLASSPATH (永久)变量来编写-classpath命令。另一种方法是使用@jberg指出的-jar开关。
编辑:
正如我所检查的(我从那个地点下载了Weka-3-4-19),weka.jar包中肯定没有weka.classifiers.tress.j48.J48类。也许你是在找:
java weka.classifiers.trees.J48例如:
$ export CLASSPATH=/home/grzegorz/weka-3-4-19/weka.jar:.
$ echo $CLASSPATH
/home/grzegorz/weka-3-4-19/weka.jar:.
$ java weka.classifiers.trees.J48
Weka exception: No training file and no object input file given.
General options:
-t <name of training file>
Sets training file.
...发布于 2011-10-31 02:50:24
这个“weka.clifiers.trees.j48.J48”是Weka文档中的一个错误。应该是这样:"weka.classifiers.trees.J48“
而不是设置$CLASSPATH,而是只设置:
java -cp /pathto/weka.jar weka.classifiers.trees.J48此外,您可能希望给它更多的内存来玩,以加快速度:
java -Xmx1G -cp /pathto/weka.jar weka.classifiers.trees.J48为了运行分类器(就像您正在尝试的那样),您至少需要给它一些数据,这些数据必须已经转换为ARFF格式。
若要对某些数据输入运行测试,请执行以下操作:
java -Xmx1G -cp /path/to/weka.jar weka.classifiers.trees.J48 -t /path/to/whatever.arff-t用于培训文件。
见此处:Weka Primer
发布于 2011-07-09 15:37:54
我还没有在linux上使用WEKA,但是我认为它只是打包成一个jar文件,所以您想:
java -jar weka.jar
您也可以使用weka源jars在您自己的代码中使用分类器,方法是将它包括在您的构建路径中,就像其他jars一样。
https://stackoverflow.com/questions/6635710
复制相似问题