在调用Weka时无法找到或加载主类

我为我的Java noobness道歉,但我试图从控制台使用Weka ,由于某种原因我得到以下错误:

 Error: Could not find or load main class weka.classifiers.trees.J48 

我正在尝试以下命令:

 java weka.classifiers.trees.J48 -l C:\xampp\htdocs\frequencyreplyallwords.arff -TC:\xampp\htdocs\testfreqrep.arff -p 0 > C:\xampp\htdocs\output.txt 

我怀疑classpath存在一些问题但是因为我不太了解Java是否有任何简单的方法来检查一切是否正确?

感谢您的任何帮助

您可以使用-cp参数提供类路径:

 java -cp /path/to/weka/weka.jar weka.classifiers.trees.J48 ... # on Windows, this is probably something like java -cp C:\path\to\weka\weka.jar weka.classifiers.trees.J48 ... 

我假设你使用windows,所以这是windows命令行示例。 如果你得到

 SET WEKA_HOME=C:\Program Files\Weka-3-7 SET CLASSPATH=%CLASPATH%;%WEKA_HOME%\weka.jar SET HEAP_OPTION=-Xms4096m -Xmx8192m SET JAVA_COMMAND=java %HEAP_OPTION% %JAVA_COMMAND% weka.core.SystemInfo 

您应该获得系统值以及weka值,例如weka.version:3.7.9

Linux / macOS解决方案

  1. 从此目录下载相关版本,例如Developer Linux版本,3.9.1版本

  2. ~/.bash_profile添加到~/.bash_profile

cat ~/.bash.profile的命令输出

 export R_HOME="/Applications/R.app/Contents/MacOS/R" #for WEKA MLR R plugin export CLASSPATH="/Applications/weka-3-9-1/weka.jar" #for WEKA commandline export WEKAINSTALL="/Applications/weka-3-9-1" export WEKA_HOME="/Applications/weka-3-9-1" export CLASSPATH=$CLASSPATH;$WEKA_HOME/weka.jar export HEAP_OPTION=-Xms4096m -Xmx8192m export JAVA_COMMAND java $HEAP_OPTION 

之后你应该能够跑

 java weka.classifiers.trees.J48 -t $WEKAINSTALL/data/iris.arff 

输出

 J48 pruned tree ------------------ petalwidth <= 0.6: Iris-setosa (50.0) petalwidth > 0.6 | petalwidth <= 1.7 | | petallength <= 4.9: Iris-versicolor (48.0/1.0) | | petallength > 4.9 | | | petalwidth <= 1.5: Iris-virginica (3.0) | | | petalwidth > 1.5: Iris-versicolor (3.0/1.0) | petalwidth > 1.7: Iris-virginica (46.0/1.0) Number of Leaves : 5 Size of the tree : 9 Time taken to build model: 0.44 seconds Time taken to test model on training data: 0.01 seconds === Error on training data === Correctly Classified Instances 147 98 % Incorrectly Classified Instances 3 2 % Kappa statistic 0.97 Mean absolute error 0.0233 Root mean squared error 0.108 Relative absolute error 5.2482 % Root relative squared error 22.9089 % Total Number of Instances 150 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure MCC ROC Area PRC Area Class 1.000 0.000 1.000 1.000 1.000 1.000 1.000 1.000 Iris-setosa 0.980 0.020 0.961 0.980 0.970 0.955 0.990 0.969 Iris-versicolor 0.960 0.010 0.980 0.960 0.970 0.955 0.990 0.970 Iris-virginica Weighted Avg. 0.980 0.010 0.980 0.980 0.980 0.970 0.993 0.980 === Confusion Matrix === abc <-- classified as 50 0 0 | a = Iris-setosa 0 49 1 | b = Iris-versicolor 0 2 48 | c = Iris-virginica === Stratified cross-validation === Correctly Classified Instances 144 96 % Incorrectly Classified Instances 6 4 % Kappa statistic 0.94 Mean absolute error 0.035 Root mean squared error 0.1586 Relative absolute error 7.8705 % Root relative squared error 33.6353 % Total Number of Instances 150 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure MCC ROC Area PRC Area Class 0.980 0.000 1.000 0.980 0.990 0.985 0.990 0.987 Iris-setosa 0.940 0.030 0.940 0.940 0.940 0.910 0.952 0.880 Iris-versicolor 0.960 0.030 0.941 0.960 0.950 0.925 0.961 0.905 Iris-virginica Weighted Avg. 0.960 0.020 0.960 0.960 0.960 0.940 0.968 0.924 === Confusion Matrix === abc <-- classified as 49 1 0 | a = Iris-setosa 0 47 3 | b = Iris-versicolor 0 2 48 | c = Iris-virginica