Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Maven项目:不支持的主版本。次版本52.0顽固错误_Java_Spring_Eclipse_Maven_Tomcat - Fatal编程技术网

Java Spring Maven项目:不支持的主版本。次版本52.0顽固错误

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

出于基础设施方面的原因,我正在将一个小型应用程序从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.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。。。。