java.lang.UnsupportedClassVersionError:JVMCFRE003糟糕的主要版本; class = org / slf4j / impl / StaticLoggerBinder,offset = 6

时间:2017-08-11 18:42:34

标签: java websphere slf4j

有趣的是,我的war文件中的slf4j依赖关系抱怨

java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=org/slf4j/impl/StaticLoggerBinder, offset=6

这是Websphere 8.5中使用的Java版本

Java version = 1.6.0, Java Compiler = j9jit26, Java VM name = IBM J9 VM

并且slf4j-api-1.7.5.jarslf4j-simple-1.7.5.jar的MANIFEST.MF是

Build-Jdk: 1.6.0_23

我只能想到IBM JDK与Sun JDK不同,但它们仍处于相同的java版本(6),那么异常怎么可能仍然发生呢?

我认为错误是由于运行环境在旧JDK上,但文件是在新JDK中编译的。

2 个答案:

答案 0 :(得分:0)

this link,我认为你没有看到正确的罐子。

slf4j-api-1.7.5.jar只包含api,而不是实现。你需要找到哪个jar包含StaticLoggerBinder的实现,那就是以更高版本编译的jar。

答案 1 :(得分:0)

  1. slf4j-api-1.7.5.jar不包含StaticLoggerBinder类。 寻找合适的罐子。
  2. 您应该在MANIFEST上看到X-Compile-Target-JDK属性,而不是Build-jdk