首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MyEclipse 啟動項目報 UnsupportedClassVersionError 51.0:JDK 編譯版本與運行版本不匹配

     編輯:程式設計綜合問答

錯誤關鍵行

java.lang.UnsupportedClassVersionError: cn/westcatr/nananiot/HomeController : Unsupported major.minor version 51.0

版本對應表

Major VersionJDK 版本
45JDK 1.1
46JDK 1.2
47JDK 1.3
48JDK 1.4
49JDK 5
50JDK 6
51JDK 7
52JDK 8
53JDK 9
54JDK 10
55JDK 11
56JDK 12
57JDK 13
58JDK 14
59JDK 15
60JDK 16
61JDK 17
62JDK 18
63JDK 19
64JDK 20
65JDK 21

根因

類 HomeController **用 JDK 7 (major version 51) 編譯**,但 MyEclipse 內置/配置的 Tomcat **運行在 JDK 6 或更低版本**上。高版本編譯的 class 文件無法在低版本 JVM 運行。

解決方案

  1. 統一 JDK 版本(推薦):
    - MyEclipse: Window → Preferences → Java → Installed JREs 添加/選中 JDK 7+。
    - 項目: Properties → Java Compiler → Compiler compliance level 設為 1.7+。
    - Tomcat: 確保啟動脚本使用同樣 JDK(JAVA_HOME 指向 JDK 7+)。
  2. 降級編譯版本(不升級運行環境時):
    - 項目編譯級別設為 1.6 (major version 50)。
    - javac -target 1.6 -source 1.6 或 Maven: <maven.compiler.source>1.6</maven.compiler.source><maven.compiler.target>1.6</maven.compiler.target>。
  3. 檢查多版本共存衝突:
    - 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 版本,或降級編譯目標版本,清理重編即可解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved