发生问题的场景是这样的,我使用的是MyEclipse6.6(版本比较老),自带Servers tomcat
使用MyEclipse启动tomcat后,报错“java.lang.UnsupportedClassVersionError:Bad version number in .class file”。
解决方法是这样的:
步骤1:确定当前使用的JDK版本
目前使用的JDK版本如何查看呢?
到当前工程的属性后,选择"Java BuildPath"进去后JRE System Library
注意:MyEclipse6.6的JRE是5.0的,所以如果你看到你的MyEclipse的JDK只有MyEclipse6.6这个JRE环境,那么需要再安装JRE环境。
打开InstalledJREs,重新Add一个JRE,指定一个JRE路径,使用自己安装的JDK 6.0,也就是JRE 6的环境进行编译。
参考: myeclipse配置jdk之后选择我们新安装的这个JDK环境。
步骤2:设置tomcat的JDK版本
windows->preferences->MyEclipseEnterprise Workbench->Servers->Tomcat->选择一人版本的tomcat->JDK->修改成当前使用的JDK版本即可。
在MyEclipse中,我用的是jdk1.6.0_02开发的,因此把项目部署到tomcat中时,默认用的是项目的jdk1.6.0_02进行编译java文件,然后和项目一起发布到tomcat里面。但是如果tomcat服务器的JDK版本与MyEclipse开发时使用的JDK版本不上下兼容(tomcat在上),也会报这个错误
步骤3:修改编译兼容等级
进到当前工程的属性后,选择"JavaCompiler"进去后将"CompilerCompliance level"设置为6.0
MyEclipse 6.6的JRE是5.0的,如果没有安装JDK6.0,即使设置了Compiler compliance level为6.0,其实依然是再5.0的JRE下进行编译的。 仍然会报错。
报这个错误的原因
上面总结了这个错误的两个原因:
一是MyEclipse使用的JDK版本和tomcat使用的版本不兼容;
二是使用了MyEclipse自带的太老的JRE。