java - 设置 Java CLASSPATH 不起作用,但 -cp 起作用

标签 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 更新本身并没有很好地发挥作用。任何见解将不胜感激。

最佳答案

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/

相关文章:

java - 从 map 中删除值为空可选的所有条目

c++ - 基于 QT 的 GUI 应用程序可以在 Windows PE 中运行吗?

windows - Cordova 录制音频不起作用Windows 10移动版

JavaFX getResource 在浏览器中运行时返回 null

java - 如何从另一个程序运行 hadoop jar?

java - 如果列表为空,则 Hibernate 限制会导致错误

java - 超出范围异常

java - 通过网络接收新类(class)

java - 非 Swing 代码应该在非 EDT 线程上执行吗?

c++ - Windows proc/callback 函数可以是类的成员函数吗?