Weka命令行调用LibSVM报找不到主类错误如何解决?
Weka命令行调用LibSVM报错解决方案
报错信息:
Error: Could not find or load main class weka.classifiers.functions.LibSVM
核心原因
- Windows系统下类路径分隔符配置错误:你当前使用的冒号
:是Linux/macOS的类路径分隔符,Windows环境*需使用分号;*作为分隔符,导致JVM无法正确识别多个Jar包路径 - 类路径存在冗余和非法配置:命令中重复引入LibSVM相关Jar,且路径
\wekafiles\packages\LibSVM\lib\libsvm.jar为非完整绝对路径,会触发路径解析失败
修复方案
方案1:修正类路径直接调用
修正分隔符和路径后的命令如下,执行前确认weka.jar在当前命令执行目录下:
java -cp weka.jar;"C:\wekafiles\packages\LibSVM\LibSVM.jar";"C:\wekafiles\packages\LibSVM\lib\libsvm.jar" weka.classifiers.functions.LibSVM -S 0 -K 1 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.001 -P 0.1 -model D:\Weka-3-8-5 -seed 1
方案2:使用Weka内置Run命令调用(推荐)
通过Weka提供的weka.core.Run工具启动扩展包,会自动加载所有通过包管理器安装的扩展类路径,无需手动配置扩展Jar,后续调用其他扩展包直接替换对应类名即可:
java -cp weka.jar weka.core.Run weka.classifiers.functions.LibSVM -S 0 -K 1 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.001 -P 0.1 -model D:\Weka-3-8-5 -seed 1
内容的提问来源于stack exchange,提问作者wasif khan
相关产品推荐
相关产品推荐

