不支持的 major.minor 版本 52.0 错误。

4

我有在JDK 1.8上编译的代码。 我创建了WAR文件,并将其部署在运行JRE 1.8的Ubuntu服务器上的Tomcat8中。 打开主页时出现以下错误:

java.lang.UnsupportedClassVersionError: com/dash/io/web/bind/HomeCtrl : Unsupported major.minor version 52.0

该错误表示您的Java版本过低而无法支持该应用程序的代码。 您需要升级到 Java 8(版本号:52)或更高版本。

$ java -versionjava version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

$ javac -version
javac 1.8.0_45

$ echo $JRE_HOME
/usr/local/java/jdk1.8.0_45/jre

$ /usr/local/apache-tomcat-8.0.22/bin/catalina.sh version 
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.0.22 
Using CATALINA_HOME:  /usr/local/apache-tomcat-8.0.22 
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.0.22/temp 
Using JRE_HOME:        /usr/local/java/jdk1.8.0_45/jre 
Using CLASSPATH:       /usr/local/apache-tomcat-8.0.22/bin/bootstrap.jar:/usr/local/apache-tomcat-8.0.22/bin/tomcat-juli.jar 
Server version: Apache Tomcat/8.0.22 
Server built:   Apr 29 2015 11:46:15 UTC 
Server number:  8.0.22.0 
OS Name:        Linux 
OS Version:     3.13.0-52-generic 
Architecture:   amd64 
JVM Version:   1.8.0_45-b14 
JVM Vendor:     Oracle Corporation

Need help. Thanks.


我认为这个问题被错误地关闭为重复。你的问题不是在问错误的含义,而是在问为什么即使你使用Java 8运行时,你还是会得到这个错误。 - Gimby
是的,你说得对Gimby。通常情况下,当使用JDK1.8编译代码并使用JRE 1.7运行时会出现此错误。但在我的情况下,我使用了JRE1.8。我在其他帖子中找不到这种情况的解决方案。谢谢。 - Mark Lauda Lauw
这个问题其实很简单,尽管可能难以接受:如果你遇到了这个错误,那么你并没有通过Java 8运行Tomcat。让我来说得更明确一些:我认为/usr/local/java/jdk1.8.0_45/jre实际上是通过某种黑魔法运行的Java 7运行时。尝试直接在它的bin目录中运行java -version来验证一下。 - Gimby
1个回答

0

嗨,Akah,我没有使用Maven。我正在使用Gradle,我已经加入了以下几行代码: sourceCompatibility = 1.8 targetCompatibility = 1.8 - Mark Lauda Lauw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接