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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章