我花了一些时间来调试,但仍然没有线索。
我在Eclipse下使用m2e,我检查了java.class.path,它确实在类路径下面有jars。
有什么想法吗?
Exception in thread "main" java.lang.NoClassDefFoundError:
org/slf4j/LoggerFactory
at hadoop.ReadHDFS.main(ReadHDFS.java:18)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
C:\Users\xxxx\.m2\repository\org\slf4j\slf4j-api\1.7.10\slf4j-api-1.7.10.jar
C:\Users\xxxx\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar
C:\Users\xxxx\.m2\repository\org\slf4j\slf4j-log4j12\1.7.10\slf4j-log4j12-1.7.10.jar
---添加更多背景---
我正在运行hadoop程序。刚刚发现当我在pom.xml中添加hadoop-client依赖时,它将中止此错误。
在pom.xml中,我没有显式添加这些依赖项,但有效的pom有它们,java.class.path也包含它们。
编译很好,只有运行时出错
--- ---解决方法
如果我从hadoop-client中排除了slf4j-api,它会起作用: 至于根本原因,还是未知数。