我正在构建一个我遇到此问题的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缓存等,但对我没用。
我感谢任何帮助。感谢
答案 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命令重试。 这是成功的。