在J2SE1.4的時(shí)候編譯的是J2SE1.4的字節(jié)碼形式,在J2SE5.0是5.0的字節(jié)碼形式,一般只具有向下兼容性,也就是說在J2SE5.0中可以運(yùn)行J2SE1.4的字節(jié)碼,但是反過來則不行,在J2SE1.4下運(yùn)行了J2SE5.0編譯出來的字節(jié)碼,就會(huì)出現(xiàn)上面所說的java.lang.UnsupportedClassVersionError錯(cuò)誤了。最后,還要注意一點(diǎn)的是,不僅你的class文件要注意,所有在classpath下用到的lib的jar文件的版本也要注意,如果jar文件里面的class以前是高版本JDK編譯出來的字節(jié)碼形式,那也同樣會(huì)出java.lang.UnsupportedClassVersionError錯(cuò)誤的。
使用JDK1.5編譯的程序在JDK1.4下運(yùn)行,出現(xiàn)Unsupported major.minor version 49.0。48,49是java編譯器內(nèi)部的版本號(hào),48表示的是JDK1.4來編譯運(yùn)行的程序。49是JDK1.5編譯運(yùn)行的程序
解決步驟 :
1、使用java -version查看版本 顯示JDK1.5,于是知道錯(cuò)誤原因了,使用JDK1.4寫的程序調(diào)用1.5編譯的jar而產(chǎn)生的錯(cuò)誤。
2、打開注冊(cè)表,找到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft把java development kit中的1.5中的java_home改成1.4對(duì)應(yīng)的路徑,以及Java runtime Environment中的Jdk1.5 部分的路徑同樣設(shè)置成jdk1.4 jre對(duì)應(yīng)的路徑。
3、再打開cmd窗口,使用 java -version 查看JDK版本,這時(shí)候顯示1.4說明正常。在當(dāng)前環(huán)境下編譯jar.