SLF4J不兼容的魔法值3130930938

时间:2016-06-06 06:41:53

标签: java maven log4j slf4j

我正在构建一个我遇到此问题的maven项目。这是日志跟踪

`Exception in thread "main" java.lang.ClassFormatError: Incompatible magic value 3130930938 in class file org/slf4j/LoggerFactory
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    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 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:386)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)`

以下是我在pom.xml中的依赖项

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>1.6.4</version>
   </dependency> 
<dependency>

我已经尝试了不同的选项,例如清除java缓存等,但对我没用。

我感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:0)

org.slf4j中的所有工件在POM中使用时必须具有相同的版本。否则就会产生运行时错误。

答案 1 :(得分:0)

感谢您的帮助。我终于解决了这个问题。这是罪魁祸首

步骤1:我将魔术值转换为ascii并获得以下输出“?? 6?”。我检查了我maven的m2目录中的slf4j api,发现另一个版本(1.5.6)的slf4j也出现在那里。我删除了slf-4j(1.5.6)。

第2步:

我在eclipse / configuration / org.eclipse.osgi中删除了slf4j包(它给出了错误),并使用maven build命令重试。 这是成功的。