设置 Java CLASSPATH 无效,但 -cp 有效

Setting Java CLASSPATH doesn't work but -cp does

所以,这是我遇到的问题。我在我拥有的一些数据集上为 运行 weka 写了一个简单的 .bat 文件,但 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 更新后,我一直收到错误 "Could not find or load main class weka.classifiers.meta.FilteredClassifier"。我无法弄清楚,因为目录名称和 class 名称完全正确。所以,我将代码更改为:

@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