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