java.lang.UnsupportedClassVersionError: cn/westcatr/nananiot/HomeController : Unsupported major.minor version 51.0
| Major Version | JDK 版本 |
|---|---|
| 45 | JDK 1.1 |
| 46 | JDK 1.2 |
| 47 | JDK 1.3 |
| 48 | JDK 1.4 |
| 49 | JDK 5 |
| 50 | JDK 6 |
| 51 | JDK 7 |
| 52 | JDK 8 |
| 53 | JDK 9 |
| 54 | JDK 10 |
| 55 | JDK 11 |
| 56 | JDK 12 |
| 57 | JDK 13 |
| 58 | JDK 14 |
| 59 | JDK 15 |
| 60 | JDK 16 |
| 61 | JDK 17 |
| 62 | JDK 18 |
| 63 | JDK 19 |
| 64 | JDK 20 |
| 65 | JDK 21 |
類 HomeController **用 JDK 7 (major version 51) 編譯**,但 MyEclipse 內置/配置的 Tomcat **運行在 JDK 6 或更低版本**上。高版本編譯的 class 文件無法在低版本 JVM 運行。
Window → Preferences → Java → Installed JREs 添加/選中 JDK 7+。Properties → Java Compiler → Compiler compliance level 設為 1.7+。JAVA_HOME 指向 JDK 7+)。javac -target 1.6 -source 1.6 或 Maven: <maven.compiler.source>1.6</maven.compiler.source><maven.compiler.target>1.6</maven.compiler.target>。java -version、javac -version 確認默認版本。target/classes 重新編譯,避免殘留舊 class 文件。# 查看 class 文件版本
javap -verbose cn/westcatr/nananiot/HomeController | grep "major version"
# 應與運行時 JDK 主版本一致或更低
UnsupportedClassVersionError 51.0 = **類文件版本 51 (JDK 7) > 運行時 JVM 版本**。統一編譯/運行 JDK 版本,或降級編譯目標版本,清理重編即可解決。