java Weka判别分析NoClassDefFoundError
我试图在判别分析包中使用MultiClassFLDA,但在运行代码和定义MultiClassFLDA类的新实例时总是会出错
Exception in thread "main" java.lang.NoClassDefFoundError: no/uib/cipr/matrix/Vector
at assignment2.face.tryLDA(face.java:141)
at assignment2.Assignment2.main(Assignment2.java:106)
Caused by: java.lang.ClassNotFoundException: no.uib.cipr.matrix.Vector
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
# 1 楼答案
它似乎与较新版本的Weka中的一些动态类加载有关,可能是在Weka包管理器中:该类在中绑定。在that other question中,an answer建议提取
mtj.jar
中定义,它在^{mtj.jar
并将其添加到类路径中由于我对其他过滤器没有这个问题,我猜测
MultiClassFLDA
没有正确实现:我发现,如果之前使用了另一个过滤器,特定的类将被加载:注意,这真是一个丑陋的黑客!我用它来工作。当我找到合适的方法时,我会编辑我的答案(而不是从Weka itslef中提取罐子)