java 異常:java.lang.UnsupportedClassVersionError

roszhaodan481發表於2014-05-22

文獻:http://www.verydemo.com/demo_c89_i228285.html

剛開始在控制檯執行的時候是正常的,但自從我在控制檯執行了一個JDBC程式報了這個異常後,我執行任何程式都會報這個異常了,我把CLASSPATH認真檢查了好幾遍,並且還恢復到以前的設定,但還是會報這個異常,但在Eclipse中一切正常,真是塊讓我瘋了啊,
Exception in thread main java.lang.UnsupportedClassVersionError: Joseph (Unsup
ported major.minor version 50.0)
     at java.lang.ClassLoader.defineClass0(Native Method)
     at java.lang.ClassLoader.defineClass(Unknown Source)
     at java.security.SecureClassLoader.defineClass(Unknown Source)
     at java.net.URLClassLoader.defineClass(Unknown Source)
     at java.net.URLClassLoader.access$100(Unknown Source)
     at java.net.URLClassLoader$1.run(Unknown Source)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(Unknown Source)
     at java.lang.ClassLoader.loadClass(Unknown Source)
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
     at java.lang.ClassLoader.loadClass(Unknown Source)
     at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 
通常這種異常是因為類版本不一樣造成的,比如使用高版本jdk(如jdk1.5)編譯的類在低版本的jre(比如jre1.4)上執行,就會報這種異常
建議檢查一下工程中用到的jdk和執行時的jre版本。

環境變數沒有設對。


可能是安裝JDK後,安裝其他軟體的時候(例如Oracle),該軟體自動安裝了低版本的jre。
 
找到path變數看看就知道怎麼回事了。
通常安裝Oracle後,Oracle會預設將一個低版本的jre放到Path的最前面,只要把它去掉就可以了,不會影響它的使用,只要path裡有一個jdk/bin/就可以了。

把你的jdk設定到oracle前面就可以了