JDK版本问题引起的java.lang.UnsupportedClassVersionError

在开发中遇到类似的问题,即部署到tomcat上跑时抛出java.lang.UnsupportedClassVersionError: Bad version number in .class file,原因是引用的jxl.jar 使用JDK 版本高于我机器上的JDK版本, 具体如下, 不再赘述。


我下载的jexcelapi_2_6_11.zip是JDK6版本,但是下载地址: http://sourceforge.net/projects/jexcelapi/files/ 中没有说明。后仔细看才发现画面最下面有: 
2.6.9 (Java 1.4)  Subscribe Folder view 
jexcelapi_2_6_9_1.4.tar.gz 1.8 MiB Tue Nov 25 2008 17:07 6,743 Release Notes 
jexcelapi_2_6_9_1.4.zip 2.3 MiB Tue Nov 25 2008 17:06 33,519 Release Notes 
2.6.9 (Java 1.6) 
由于项目原因,我目前使用的JDK只能是1.5,重新下载2.6.9 (Java 1.4) ,无论我的集成开发环境还是TOMCAT使用的JDK是1.5或1.6,以上问题都彻底解决。 

分析总结如下: 
1、JDK6编译的代码在低版本JDK上运行会出现java.lang.UnsupportedClassVersionError: Bad version number in .class file问题。反之没有问题。 
2、去下载jexcelapi的时候要特别注意你下载的版本所支持的JDK版本号,最新版本的通常是支持的高版本JDK。也希望以后官方下载地址中能准确标识这方面的信息。 
造成这种错误的原因是你的支持Tomcat运行的JDK版本与支持application运行的JDK版本不一致导致的. 

那么如何解决上面的问题呢? 

办法显而易见:把它们的JDK版本改成一致. 

步骤如下: 

1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单中选择JDK版本. 

2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉菜单中选择自己电脑上安装的JDK版本(必须与步骤1中的JDK版本一致). 

如果还是没有解决,不用着急,因为有些MyEclipse版本自带有JDK版本,所以也要将它改过来. 

3.Window --> Preferences -->Java -->Installed JRES,然后在右边选择与步骤1和2版本一致的JDK 

你可能感兴趣的:(JDK版本问题引起的java.lang.UnsupportedClassVersionError)