所以,这就是我遇到的问题。我编写了一个简单的 .bat 文件来在我拥有的一些数据集上运行 weka,但 Java 最近更新了自身,它停止工作。我的旧代码是这样的:
@ECHO OFF
SET CLASSPATH = "C:\Program Files (x86)\Weka-3-6\weka.jar"
FOR /r %%I IN (*.arff) DO (
ECHO Running %%~nI.arff
java weka.classifiers.meta.FilteredClassifier -t %%~nI.arff -F "weka.filters.unsupervised.attribute.Remove -R 1,3,4,5" -W weka.classifiers.functions.LinearRegression -x 10 >> results.txt
ECHO >> results.txt
)
这以前有效,并且完成了我要求的工作。然而,在java更新之后,我不断收到错误“无法找到或加载主类weka.classifiers.meta.FilteredClassifier”。我无法弄清楚,因为目录名和类名完全正确。所以,我将代码更改为:
@ECHO OFF
SET CLASSPATH = "C:\Program Files (x86)\Weka-3-6\weka.jar"
FOR /r %%I IN (*.arff) DO (
ECHO Running %%~nI.arff
java -cp "C:\Program Files (x86)\Weka-3-6\weka.jar" weka.classifiers.meta.FilteredClassifier -t %%~nI.arff -F "weka.filters.unsupervised.attribute.Remove -R 1,3,4,5" -W weka.classifiers.functions.LinearRegression -x 10 >> results.txt
ECHO >> results.txt
)
它又起作用了。谁能告诉我为什么会这样?我唯一能想到的是 Java 更新本身并没有很好地发挥作用。任何见解将不胜感激。
最佳答案
SET WEKA_HOME=c:\Program Files (x86)\Weka-3-6
SET CLASSPATH=%CLASPATH%;%WEKA_HOME%\weka.jar
bash learn.sh
关于java - 设置 Java CLASSPATH 不起作用,但 -cp 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643051/