不支持的major.minor版本52.0(无法加载类)

时间:2017-03-15 20:56:24

标签: java

当我运行我的项目时,我得到以下异常:

javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: apache/commons/codec/UtilityUtil : Unsupported major.minor version 52.0 (unable to load class apache.commons.codec.UtilityUtil)

我研究过并发现如果java的版本与运行时和编译时不同,就会发生这种情况。

我已经关注了这两个帖子并试图弄清楚我使用的是java 8并且运行时已经有1.7: Unsupported major.minor version 52.0 captive portal How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

我已将编译版本更改为1.7。但仍然存在同样的问题。我不知道为什么。

运行时版本:1.7.0_45 编译版本:1.7.0_80。

4 个答案:

答案 0 :(得分:5)

这是重复的。您使用的类可能是使用Java 1.8编译的,而您的jvm是1.7。这也包括第三方罐子

答案 1 :(得分:2)

请执行以下步骤以查找您的.JRE版本和JDK版本。

JRE检查

java -version

java version" 1.7.0_111" OpenJDK运行时环境(IcedTea 2.6.7)(7u111-2.6.7-2~deb7u1) OpenJDK 64位服务器VM(内置24.111-b01,混合模式)

JDK检查

javac -version

javac 1.6.0_38

你可以发现两个版本都不同。所以,让它们成为通用版本。这将解决您的问题。

答案 2 :(得分:1)

52 = J2SE 8.您仍在使用Java 1.8进行编译(或者您正在使用的某些库使用1.8编译,如@efekctive所指出的那样。)

请发布您正在使用的命令。

答案 3 :(得分:1)

正如@efekctive所说,我的构建使用java 8来构建类。将版本更改回7并按预期工作。谢谢大家。