我试图使用象夫和创建使用Lucene索引文本从以下向量这个:https://cwiki.apache.org/confluence/display/MAHOUT/Creating+Vectors+from+Text无法运行./bin/mahout由于java.lang.NoClassDefFoundError:组织/ SLF4J /的LoggerFactory错误
但当我从MAHOUT_HOME目录在Cygwin中运行命令./bin/mahout我得到这个错误:
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.mahout.driver.MahoutDriver.<clinit>(MahoutDriver.java:89)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 1 more
Exception in thread "main"
我知道,这是SLF4J的依赖问题,但我不知道我应该怎么解决呢。
我已经成功使用“mvn install”构建了mahout,所有测试都可以正常工作,并且没有错误,并且我为我的项目(创建lucene索引器)使用了Eclipse Indigo(Maven Built-in功能)。
任何想法?
不,它已经是项目的依赖项,就像你所期望的那样。否则整个项目不会编译开始。 – 2012-08-01 19:10:10
你能否请转储mvn依赖项的输出:tree?另外,我想知道是否可以执行一个简单的测试:如果将sl4j.jar复制到JDK_HOME/jre/lib中会发生什么情况?我强烈怀疑它是这种依赖性。我对MAHOUT并不熟悉,但从我刚刚阅读的内容来看,此问题的根本原因始终是classpath中缺少的sl4j-api.jar。 – 2012-08-01 19:25:46
此外,另一个建议:如果./bin/mahout是一个可编辑的脚本,当您在其中添加'echo $ CLASSPATH'时,会得到什么输出? 此外,在cygwin提示符下执行此操作时会发生什么:'export CLASSPATH =/cygdrive/c/path_to_sl4j-api.jar',然后执行./bin/mahout? – 2012-08-01 19:27:46