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

Java 不支持的major.minor版本52.0错误,java,tomcat,jakarta-ee,java-8,tomcat8,Java,Tomcat,Jakarta Ee,Java 8,Tomcat8,我有在JDK1.8上编译的代码。我创建了war文件,并将其部署在运行JRE 1.8的Ubuntu服务器的Tomcat8上。 打开主页时出现以下错误: java.lang.UnsupportedClassVersionError:com/dash/io/web/bind/HomeCtrl :不支持的主要版本。次要版本52.0 我需要帮助。谢谢。我猜您正在使用maven制作war和maven编译器插件。 你在那里设置好你的源和目标版本了吗? 默认配置可能不是您想要的。 我的想法是,由于所有错误的原因

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

java.lang.UnsupportedClassVersionError:com/dash/io/web/bind/HomeCtrl :不支持的主要版本。次要版本52.0


我需要帮助。谢谢。

我猜您正在使用maven制作war和maven编译器插件。 你在那里设置好你的源和目标版本了吗? 默认配置可能不是您想要的。

我的想法是,由于所有错误的原因,这个问题以重复的形式结束。你不是在问这个错误意味着什么,而是在问为什么即使你使用的是Java8运行时也会出现这个错误,对吗?是的,你是对的Gimby。通常,当代码使用JDK1.8编译并使用JRE 1.7运行时,会发生此错误。但是在我的例子中,我使用了JRE1.8。我在其他线程中找不到解决此问题的方法。谢谢。虽然这可能很难接受,但它相当简单:如果出现错误,就不是通过Java8运行Tomcat。确切地说,我认为/usr/local/java/jdk1.8.0_45/jre实际上是一个通过某种黑魔法实现的Java7运行时。尝试直接在bin目录中运行java-version来验证这一点。嗨,阿凯,我没有使用Maven。我使用的是Gradle,我放了以下几行:sourceCompatibility=1.8 targetCompatibility=1.8
$ 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