2017-11-14 5 views
-1

인스턴스의 클래스를 예측하고 싶습니다. 그러나 코드가 작동하지 않는 것 같습니다. weka에 관한 sourceforge에서 제공하는 설명서를 따라합니다.자바에서 weka.jar 사용

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); 
    } 

buildClassifier 함수를 호출 할 때 문제가 발생합니다.

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

Gradle 또는 Maven과 같은 종속성 관리 프레임 워크를 사용하여 weka의 종속성을 자동으로 가져 오게하는 것이 좋습니다. –

+0

누락 된 병을 추가했지만 여전히 작동하지 않습니다. – sali333

답변

0

Weka가 사용하는 다른 종속성이 누락되었습니다. 종속성 관리 프레임 워크를 사용하여 모두 해결하십시오.