2017-11-14 1 views
-1

Ich möchte die Klasse einer Instanz vorhersagen. Aber mein Code scheint nicht zu funktionieren. Ich folge der Dokumentation in Sourceforge über Weka.Verwenden Sie weka.jar in Java

public class Main{ 
    public static void main(String[] args) throws Exception { 
     BufferedReader reader = new BufferedReader(
     new FileReader("file.arff")); 
     Instances data = new Instances(reader) 
     data.setClassIndex(data.numAttributes() - 1); 
     Instance i1=data.instance(0); 
     data.delete(0); 
     Classifier ibk = new IBk(); 
     ibk.buildClassifier(data); 
     double class1 = ibk.classifyInstance(i1);  
     System.out.println("Classification ==================>"); 
     System.out.println("Instance 1 " + class1); 
    } 

Ein Problem tritt auf, wenn ich die buildClassifier-Funktion aufrufen.

Exception in thread "main" java.lang.NoClassDefFoundError: org/bounce/net/DefaultAuthenticator 
    at weka.core.WekaPackageManager.<clinit>(WekaPackageManager.java:99) 
    at weka.core.Utils.readProperties(Utils.java:174) 
    at weka.core.Capabilities.<init>(Capabilities.java:275) 
    at weka.classifiers.AbstractClassifier.getCapabilities(AbstractClassifier.java:508) 
    at weka.classifiers.lazy.IBk.getCapabilities(IBk.java:458) 
    at weka.classifiers.lazy.IBk.buildClassifier(IBk.java:488) 
    at weka.netbeans.Main.main(Main.java:33) 
Caused by: java.lang.ClassNotFoundException: org.bounce.net.DefaultAuthenticator 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 7 more 
+0

Darf ich vorschlagen, dass Sie ein Abhängigkeitsmanagement-Framework wie Gradle oder Maven verwenden, so dass Sie Wekas ​​Abhängigkeiten automatisch einbinden. –

+0

Ich habe das fehlende Glas hinzugefügt, aber es funktioniert immer noch nicht – sali333

Antwort

0

Sie fehlen andere Abhängigkeiten, die Weka verwendet. Verwenden Sie ein Framework für das Abhängigkeitsmanagement, um alle zu lösen.

Verwandte Themen