Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误

1、问题描述

刚开始学maven,建立一个web的项目,建立完成pom.xml马上报错,一看创建pom.xml时候没有指定web版本,然后在指定一下web版本之后没出现错误。此时开始启动tomcat:run,出现编译错误如下:
Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误_第1张图片
网页上打开一看:
Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误_第2张图片
500错误信息我们也不陌生,看遍错误信息也不知道哪儿还有问题,突然看见上图中红色圈部分,tomcat版本。我自己配置了tomcat,但是版本是8.5的,显然Maven用的是自带的Tomcat。Maven默认的Tomcat是6.0.29版本,而我的jdk版本为1.8,这样一来tomcat6就不支持了,编译错误也正常,从报错信息里也可以看出来。
在这里插入图片描述

2、解决办法

前往Apache的官网找Maven的插件,我们要将Maven的默认Tomcat改成支持JDK1.8的Tomcat插件。
 maven插件官网:http://maven.apache.org/plugins/
   在 Misc 一栏里找到 Apache Tomcat,点进去。
  Apache提供了四个版本的Tomcat。
 在这里插入图片描述
  每个版本里面都分Tomcat 6 和 Tomcat 7 两种插件。
  选择最新的 Version 2.2 中的 Tomcat 7 插件,将代码写到项目的 pom.xml 文件下的 标签下,端口号可以修改,可以不修改。

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
         <port>8888</port>
        </configuration>
      </plugin>
    </plugins>
  </build>

然后运行maven项目时候(右击项目–>run as–>maven build…)命令就不是原来的tomcat:run而是tomcat7:run,不然,还是会运行maven自带的tomcat6.
Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误_第3张图片
然后成功启动tomcat7
Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误_第4张图片
Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误_第5张图片
成功解决!!!

另外,说一个小的知识点,classpath(类路径)指的是:项目的src目录之下,或者maven项目的java和resources目录下。

你可能感兴趣的:(Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误)