2011-06-09 50 views
0

我正在學習通過從本書複製的示例開始使用mahout。但是,Eclipse編譯器給了我以下消息:如何追溯此編譯錯誤?

> Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 
    at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<clinit>(FileDataModel.java:119) 
    at mia.recommender.ch02.RecommenderIntro.main(RecommenderIntro.java:18) 
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    ... 2 more 

在我看來,該問題源於FileDataModel.java,屬於這個libary本身。如何追溯或分析此錯誤。

示例代碼如下給出,它正是從書中複製的代碼。造成麻煩的線路

DataModel model = new FileDataModel(new File("intro.csv")); 


import org.apache.mahout.cf.taste.impl.model.file.*; 
import org.apache.mahout.cf.taste.impl.neighborhood.*; 
import org.apache.mahout.cf.taste.impl.recommender.*; 
import org.apache.mahout.cf.taste.impl.similarity.*; 
import org.apache.mahout.cf.taste.model.*; 
import org.apache.mahout.cf.taste.neighborhood.*; 
import org.apache.mahout.cf.taste.recommender.*; 
import org.apache.mahout.cf.taste.similarity.*; 
import java.io.*; 
import java.util.*; 
class RecommenderIntro { 
    public static void main(String[] args) throws Exception { 


    DataModel model = new FileDataModel(new File("intro.csv")); 
    UserSimilarity similarity = new PearsonCorrelationSimilarity(model); 
    UserNeighborhood neighborhood = 
     new NearestNUserNeighborhood(2, similarity, model); 
    Recommender recommender = new GenericUserBasedRecommender(
     model, neighborhood, similarity); 
    List<RecommendedItem> recommendations = 
     recommender.recommend(1, 1); 
    for (RecommendedItem recommendation : recommendations) { 
     System.out.println(recommendation); 
    } 
    } 
} 
+0

這是不是真的什麼關係亨利馬烏。您沒有使用可用於您的程序的所有庫。 – 2011-06-09 19:59:24

回答