JDK環境和編譯版本一致 依然Unsupported major.minor version錯誤解決辦法
有時候把專案從本機編譯檔案部署到伺服器,或者發給別人使用時,會報如下異常:
java.lang.UnsupportedClassVersionError: test_hello_world :
Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
.........................................
這個錯誤時因為JDK版本的問題,比如本機的JDK為1.6,但是專案編譯時用的JDK為1.7那麼就會出現這個異常,因為本機JDK版本較低不能執行編譯版本為高版本的Class檔案,各JDK版本對應的錯誤編號如下:
J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
解決辦法
Eclipse/Myeclipse
步驟一:
修改Eclipse/Myeclipse JDK版本:
Window à Preference à Java à Installed JREs
在相應的JDK版本前面打鉤
步驟二:
修改專案的JDK編譯版本
專案右鍵 à Java Compiler
修改JDK編譯版本
步驟三(關鍵):
因為我們一般是從Web容器(Tomcat、Resin等)中Copy編譯檔案上傳伺服器,所以這一步尤為重要,需要修改Web容器使用的JDK版本:
Window à Preference à Myeclipse à Servers à Resin à Resin3.x à JDK
這樣就搞定了。
這三個JDK版本最好保持一致。
原文連結:http://www.cnblogs.com/edwinchen/p/3979586.html