在J2SE1.4的時候編譯的是J2SE1.4的字節碼形式,在J2SE5.0是5.0的字節碼形式,一般只具有向下兼容性,也就是說在J2SE5.0中可以運行J2SE1.4的字節碼,但是反過來則不行,在J2SE1.4下運行了J2SE5.0編譯出來的字節碼,就會出現上面所說的java.lang.UnsupportedClassVersionError錯誤了。最后,還要注意一點的是,不僅你的class文件要注意,所有在classpath下用到的lib的jar文件的版本也要注意,如果jar文件里面的class以前是高版本JDK編譯出來的字節碼形式,那也同樣會出java.lang.UnsupportedClassVersionError錯誤的。

        使用JDK1.5編譯的程序在JDK1.4下運行,出現Unsupported major.minor version 49.0。48,49是java編譯器內部的版本號,48表示的是JDK1.4來編譯運行的程序。49是JDK1.5編譯運行的程序

解決步驟 :
1、使用java -version查看版本 顯示JDK1.5,于是知道錯誤原因了,使用JDK1.4寫的程序調用1.5編譯的jar而產生的錯誤。
2、打開注冊表,找到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft把java development kit中的1.5中的java_home改成1.4對應的路徑,以及Java runtime Environment中的Jdk1.5 部分的路徑同樣設置成jdk1.4 jre對應的路徑。
3、再打開cmd窗口,使用 java -version 查看JDK版本,這時候顯示1.4說明正常。在當前環境下編譯jar.