执行程序时报出下面错误:
java.lang.NoSuchFieldError: name
at org.slf4j.impl.Log4jLoggerAdapter.<init>(Log4jLoggerAdapter.java:75)
网上说是因为slf4j版本太旧引起的:
http://bugzilla.slf4j.org/show_bug.cgi?id=137
用m2eclipse的Maven POM Editer查看依赖很方便,选择Dependency Hierarchy,在Filter中输入slf4j:

上图只截取了部分结果。依赖中确实有个项目饮用了过旧版本1.4.3。
在pom.xml中显示声明slf4j,运行成功:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
</dependency>
本文介绍了解决因SLF4J版本过旧导致的java.lang.NoSuchFieldError错误的方法。通过使用m2eclipse的MavenPOMEditor检查依赖,并在pom.xml中显式声明最新版本的SLF4J,成功解决了问题。

1万+

被折叠的 条评论
为什么被折叠?



