设置Java CLASSPATH不起作用,但-cp确实有效

时间:2015-04-15 06:30:19

标签: java windows classpath

所以,这是我遇到的问题。我写了一个简单的.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更新在某种程度上并不能很好地发挥作用。任何见解都将不胜感激。

1 个答案:

答案 0 :(得分:0)

SET WEKA_HOME=c:\Program Files (x86)\Weka-3-6
SET CLASSPATH=%CLASPATH%;%WEKA_HOME%\weka.jar
bash learn.sh