java.lang.UnsupportedClassVersionError::Class文件编译的版本错误

有时,从SVN下检出新项目后,在TOMCAT上跑报错:

Caused by: java.lang.UnsupportedClassVersionError: javafx/application/Application : Unsupported major.minor version 52.0


起初想的是原因是jdk版本不一致导致的,就先顺藤摸瓜找下去:一般查的流程如下

第一步,首先是检查本机当前的jdk version。在cmd里java -version查看当前版本号。


先查了报错maven项目的pom.xml文件中的jdk环境要求,确定一致后往后走



第二步,检查当前项目的Jave Compiler是否与本机jdk版本吻合。



第三步,切换过java Compiler和java build path并且apply后,最好把之前部署在Tomcat上编译出项目的class文件删了,然后重新部署一次。避免Eclipse直接运行以前编译过的class文件。然后继续报UnsupportedClassVersionError;

(ps.有时候eclipse也会抽风,编译不出来,可以重启下eclipse试下 :)

这个报错有可参考以下文章:

http://blog.csdn.net/pipisorry/article/details/42965435


然而,检查与调整上面依旧报错。。。于是开始怀疑eclipse本身编译有问题,接着想法是用maven直接编译检查:

用脚本命令,清除项目,由于是maven项目,需安装依赖,安装到指定目录;

 call mvn clean install dependency:copy-dependencies -DoutputDirectory=target/lib -DskipTests

配置下maven_opts,用tomcat7运行;

set MAVEN_OPTS=%MAVEN_OPTS% -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
call mvn tomcat7:run
运行后,和之前一样的报错。无语。。

maven命令可参考下:

https://www.cnblogs.com/adolfmc/archive/2012/07/31/2616908.html


最后,想到的是:因为之前是安装过jdk1.8的版本,后来的1.7版本是直接覆盖安装,就联想了下可能有1.8版本的残留的jdk文件影响了JVM的编译?

继续折腾。。

将电脑里的java环境完全卸载,删了jdk的文件,删相关的注册表;重新下载了个新的1.7jdk,安装后竟然就好了(泪奔)。----------记录一次无语的报错 :)





猜你喜欢

转载自blog.csdn.net/keep_moveon/article/details/78785323