完整的報錯信息:
類文件具有錯誤的版本 55.0, 應為 52.0 請刪除該文件或確保該文件位於正確的類路徑子目錄中。
原因:
上面報錯中的55.0是JDK11使用的類文件格式(class file format)的版本號
提示的意思是當面項目使用的類文件格式版本比某個依賴包使用的類文件格式版本低
實際就是指當前項目使用的JDK版本比某個依賴包使用的JDK版本低
例如,新版Jetty(10.0.0或以上版本)使用了JDK11,一旦項目是使用JDK1.8並引用了新版Jetty組件就會報錯,只能使用Jetty9.4.44或以下版本
方法1:
修改項目使用的JDK版本為大於或等於依賴包的版本
File -> Project Structure -> Project -> Project SDK
方法2:
修改依賴包的版本號,一般舊版的組件使用的是舊版JDK
例如,修改Maven配置文件pom.xml中對應依賴包的<dependency><version></version></dependency>值
附:
如果搜索資料,會看到minor.major版本,但其實不叫這個名字。Sun公司會在大的版本升級時增加major數字,小更新或bug修復的版本增加minor數字
上面那個55.0實際上是Java class file format的major版本號,每代類文件格式大升級時都會+1,而minor版本號現在已經較少使用
各版本JDK使用的類文件格式版本號:
Major Minor JDK
45 3 1(.0.2) 45 3 1.1 46 0 1.2 47 0 1.3 48 0 1.4 49 0 5 50 0 6 51 0 7 52 0 8 53 0 9
54 0 10
55 0 11
56 0 12