版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
http://solecjj.blogbus.com/logs/22804587.html
Unsupported major.minor version 49.0
導致這個錯誤的核心原因是當前JDK環境和被運行的classes編譯時環境的JDK版本不一致。比如把用JDK1.5編譯的classes打成jar,並在JDK1.4的環境下使用。
如果可以拿到源代碼,用當前環境JDK重新編譯,再運行即可。(記得使用 -target -source 參數)
如果拿不到源代碼,就要確認classes的編譯器本版,然後用該版本運行。
下面是JDK 1.1 到 JDK 1.7 編譯器編譯出的 class 的默認 minor.major version
JDK 編譯器版本 | target 參數 | 十六進制 minor.major | 十進制 minor.major |
jdk1.1.8 | 不能帶 target 參數 | 00 03 00 2D | 45.3 |
jdk1.2.2 | 不帶(默認爲 -target 1.1) | 00 03 00 2D | 45.3 |
jdk1.2.2 | -target 1.2 | 00 00 00 2E | 46.0 |
jdk1.3.1_19 | 不帶(默認爲 -target 1.1) | 00 03 00 2D | 45.3 |
jdk1.3.1_19 | -target 1.3 | 00 00 00 2F | 47.0 |
j2sdk1.4.2_10 | 不帶(默認爲 -target 1.2) | 00 00 00 2E | 46.0 |
j2sdk1.4.2_10 | -target 1.4 | 00 00 00 30 | 48.0 |
jdk1.5.0_11 | 不帶(默認爲 -target 1.5) | 00 00 00 31 | 49.0 |
jdk1.5.0_11 | -target 1.4 -source 1.4 | 00 00 00 30 | 48.0 |
jdk1.6.0_01 | 不帶(默認爲 -target 1.6) | 00 00 00 32 | 50.0 |
jdk1.6.0_01 | -target 1.5 | 00 00 00 31 | 49.0 |
jdk1.6.0_01 | -target 1.4 -source 1.4 | 00 00 00 30 | 48.0 |
jdk1.7.0 | 不帶(默認爲 -target 1.6) | 00 00 00 32 | 50.0 |
jdk1.7.0 | -target 1.7 | 00 00 00 33 | 51.0 |
jdk1.7.0 | -target 1.4 -source 1.4 | 00 00 00 30 | 48.0 |
Apache Harmony 5.0M3 | 不帶(默認爲 -target 1.2) | 00 00 00 2E | 46.0 |
Apache Harmony 5.0M3 | -target 1.4 | 00 00 00 30 | 48.0 |