Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误
Posted nyankosensei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误相关的知识,希望对你有一定的参考价值。
1. 问题描述
初学Maven,新建了一个基于Web骨架的Web项目,jar 包也导好了,作用域也设置正确了,Tomcat也正常运行了,可是就是说编译错误。
2. 问题原因
虽然我配置了Tomcat 9,但是我忘记了Maven用的是自带的Tomcat。Maven默认的Tomcat是6.0.29版本,而且问题出在我以前的JDK环境是1.7,所以Tomcat 6 支持JDK1.7。而我现在更换了JDK1.8,所以Tomcat 6就不支持了,编译错误也正常,从报错信息里也可以看出来,还是感谢指点我的伙计。
3. 解决方法
前往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 文件下的 <plugins> 标签下。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
在运行Maven Goal的时候一定要注意把 tomcat:run 改成 tomcat7:run,否则还是会运行默认的 Tomcat 6。
成功启动 Tomcat 7 ,这下应该没问题了。
4. 注意事项
(1) 更换了 Tomcat 插件以后,最好修改一下当前 Tomcat 的端口,否则可能会和默认的 Tomcat 冲突引发错误。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8888</port>
</configuration>
</plugin>
(2) 经过测试,Tomcat 7 插件 2.1版本(Tomcat/7.0.37)、2.0版本(Tomcat/7.0.30)、2.0-beta-1版本(Tomcat/7.0.25) 都可以兼容JDK1.8。
以上是关于Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误的主要内容,如果未能解决你的问题,请参考以下文章
eclipse导入maven项目,不能导入maven依赖,Maven Dependencies栏没有出现
使用Eclipse + Maven 构建Java Web 项目