Java Spring Maven项目:不支持的主版本。次版本52.0顽固错误
出于基础设施方面的原因,我正在将一个小型应用程序从Tomcat 8/JRE 1.8降级到Tomcat 7/JRE 1.7。然而,当我将JRE设置为1.7,将编译器遵从性级别设置为1.7时,我在Tomcat7启动时遇到了这个错误我已经尝试了这方面的一切,但没有成功Java Spring Maven项目:不支持的主版本。次版本52.0顽固错误,java,spring,eclipse,maven,tomcat,Java,Spring,Eclipse,Maven,Tomcat,出于基础设施方面的原因,我正在将一个小型应用程序从Tomcat 8/JRE 1.8降级到Tomcat 7/JRE 1.7。然而,当我将JRE设置为1.7,将编译器遵从性级别设置为1.7时,我在Tomcat7启动时遇到了这个错误我已经尝试了这方面的一切,但没有成功 编译器符合性级别:1.7 目标运行时:ApacheTomcat v7.0 JRE系统库:jdk1.7.080 Maven POM代码段: <properties> <maven.compiler.sou
- 编译器符合性级别:1.7
- 目标运行时:ApacheTomcat v7.0
- JRE系统库:jdk1.7.080
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
原因:java.lang.UnsupportedClassVersionError:org/springframework/web/SpringServletContainerInitializer:Unsupported major.minor版本52.0(无法加载类org.springframework.web.SpringServletContainerInitializer)
您使用的Spring版本似乎是在Java8上编译的。查看您的Spring版本并检查JRE级别。你可能得把斯普林降级
原因:java.lang.UnsupportedClassVersionError:org/springframework/web/SpringServletContainerInitializer:Unsupported major.minor版本52.0(无法加载类org.springframework.web.SpringServletContainerInitializer)
您使用的Spring版本似乎是在Java8上编译的。查看您的Spring版本并检查JRE级别。您可能必须降级Spring。很简单:
org.springframework.web.SpringServletContainerInitializer
来自Spring依赖项的类是使用1.8 JDK编译的。您唯一可以做的一件事是将Spring依赖关系降级到使用1.7JDK编译的版本
如果在pom.xml文件中定义了它们,只需降级它们的版本
如果它是可传递的依赖项,则降级使用较少Spring版本的主依赖项
或者排除1.8编译依赖项,并显式添加较低版本。很简单:
org.springframework.web.SpringServletContainerInitializer
来自Spring依赖项的类是使用1.8 JDK编译的。您唯一可以做的一件事是将Spring依赖关系降级到使用1.7JDK编译的版本
如果在pom.xml文件中定义了它们,只需降级它们的版本
如果它是可传递的依赖项,则降级使用较少Spring版本的主依赖项
或者排除1.8编译的依赖项,并显式添加较低版本。您可以使用Enforcer插件来确定哪些库是使用错误版本编译的。它将准确地告诉您编译这些jar的目的和版本
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>specifyLatestVersionHere</version>
<executions>
<execution>
<id>jdk-check</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>1.7</maxJdkVersion>
</enforceBytecodeVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.0-beta-6</version>
</dependency>
</dependencies>
</plugin>
org.apache.maven.plugins
maven enforcer插件
SpecifylatesVersionhere
jdk检查
验证
执行
1.7
真的
org.codehaus.mojo
额外执行者规则
1.0-beta-6
您可以使用Enforcer插件来识别哪些库是用错误的版本编译的。它将准确地告诉您编译这些jar的目的和版本
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>specifyLatestVersionHere</version>
<executions>
<execution>
<id>jdk-check</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>1.7</maxJdkVersion>
</enforceBytecodeVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.0-beta-6</version>
</dependency>
</dependencies>
</plugin>
org.apache.maven.plugins
maven enforcer插件
SpecifylatesVersionhere
jdk检查
验证
执行
1.7
真的
org.codehaus.mojo
额外执行者规则
1.0-beta-6
无论我到哪里,答案都围绕着改变JRE和编译器遵从性级别。尽管如此,它似乎有些不同,而且更复杂。您使用哪种Spring引导/Spring版本?Spring(webmvc、jdbc、orm、data jpa)5.0.2.RELEASESo Spring 5.X是JDK 8需求,这是您的问题。看看你是否喜欢用JDK 7运行,你必须降级到Spring 4.X…我看到的每一个地方,答案都围绕着改变JRE和编译器遵从性级别。尽管如此,它似乎有些不同,而且更复杂。您使用哪种Spring引导/Spring版本?Spring(webmvc、jdbc、orm、data jpa)5.0.2.RELEASESo Spring 5.X是JDK 8需求,这是您的问题。看看你是否喜欢用JDK7运行,你必须降级到Spring4.X。。。。