SpringBoot項目啟動打包報錯類文件具有錯誤的版本 61.0, 應(yīng)為 52.0的解決方法
一、前言
最近又遇到一個奇葩問題。
之前項目好好的,能啟動能打包;
由于這個項目沒有什么需求,就什么也沒有改,放了幾個月。
今天要用這個項目的時候,發(fā)現(xiàn)打包報錯:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project my_project: Compilation failure [ERROR] /E:/my_project/src/main/java/com/main/MyApplication.java:[6,37] 無法訪問org.mybatis.spring.annotation.MapperScan [ERROR] 錯誤的類文件: E:\apache-maven-repository\org\mybatis\mybatis-spring\3.0.1\mybatis-spring-3.0.1.jar(org/mybatis/spring/annotation/MapperScan.class) [ERROR] 類文件具有錯誤的版本 61.0, 應(yīng)為 52.0 [ERROR] 請刪除該文件或確保該文件位于正確的類路徑子目錄中。
啟動這個項目的時候,也報這個錯,無法啟動。
明明幾個月前是好好的,什么代碼都沒有改,過了幾個月就不能啟動不能打包了,真的奇葩。
還好最終想辦法解決了這個問題,在此總結(jié)下。
二、排查過程
1.看報錯信息,項目啟動類MyApplication.java
里,用到了:
import org.mybatis.spring.annotation.MapperScan;
然后這句報錯,說是無法訪問。
2.按ctrl點進這個類查看,發(fā)現(xiàn)使用的是mybatis-spring-3.0.1.jar。
3.查看maven樹,發(fā)現(xiàn)項目里既用了mybatis-spring-3.0.1.jar,又用了mybatis-spring-2.0.1.jar,有沖突。
4.百度發(fā)現(xiàn),報錯類文件具有錯誤的版本 61.0, 應(yīng)為 52.0可能是某個jar包版本用的有問題。
5.從maven樹中找mybatis-spring-3.0.1.jar,找到了在pom.xml文件中,有:
<!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>RELEASE</version> </dependency>
就是這里用到了mybatis-spring-3.0.1.jar
,有了沖突。
6.把上面的代碼改為這樣:
<!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency>
指定讓它使用mybatis-spring-2.0.1.jar
。
然后再啟動項目、打包項目,就沒有問題了。
三、問題產(chǎn)生的原因
這次這個問題,主要是幾個月前項目是可以啟動、打包的;
這幾個月內(nèi)也沒有改項目代碼;
然后今天用的時候突然就不能啟動和打包了。
本人猜測,是因為pom.xml里之前指定的版本號是RELEASE,而這個maven用的地址又是公司內(nèi)部的,也就是從公司內(nèi)部下載的依賴jar包;
幾個月前,公司內(nèi)部RELEASE的包還是mybatis-spring-2.0.1.jar,但是最近換成了mybatis-spring-3.0.1.jar,就導(dǎo)致項目突然不能啟動和打包了;(也沒有公告說換RELEASE的jar包了,坑)
因此,只能手動指定為用2.0.1版本的mybatis-spring-boot-starter包,才能讓項目正常啟動和打包。
四、總結(jié)
1.出現(xiàn)類似錯誤如:類文件具有錯誤的版本 61.0, 應(yīng)為 52.0
,一般是由于某個jar包版本錯誤導(dǎo)致的,需要仔細(xì)查看報錯信息,選用正確版本的jar包。(可以換低版本的jar包試試,一般不用換高版本的。)
2.可以通過查看maven樹的方式、找到?jīng)_突的jar包、換用正確版本的jar包。
3.如果在沒有改項目代碼的情況下、之前項目能用、突然出現(xiàn)這個錯誤,有可能是maven庫里的jar包被更新了,就需要在自己的pom.xml
文件中手動指定使用的jar包版本號才行。
以上就是SpringBoot項目啟動打包報錯類文件具有錯誤的版本 61.0, 應(yīng)為 52.0的解決方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot報錯類文件具有錯誤的版本的資料請關(guān)注腳本之家其它相關(guān)文章!
- 解決springboot+activemq啟動報注解錯誤的問題
- springboot項目啟動,但是訪問報404錯誤的問題
- 記一次springboot配置redis項目啟動時的一個奇怪的錯誤
- 解決Springboot啟動報錯:類文件具有錯誤的版本61.0,應(yīng)為?52.0
- 啟動springboot項目時報錯:無法訪問org.springframework.web.bind.annotation.GetMapping …具有錯誤的版本 61.0,應(yīng)為52.0?的解決方案
- 啟動SpringBoot報JavaMail加載錯誤的原因分析和解決
- springboot項目啟動類錯誤(找不到或無法加載主類 com.**Application)
- spring boot啟動出現(xiàn)Unable to start ServletWebServerApplicationContext due to missing ServletWebServer錯誤解決
相關(guān)文章
Springboot集成第三方j(luò)ar快速實現(xiàn)微信、支付寶等支付場景
這篇文章主要介紹了Springboot集成第三方j(luò)ar快速實現(xiàn)微信、支付寶等支付場景,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Spring Boot使用線程池創(chuàng)建多線程的完整示例
在 Spring Boot 2 中,可以使用 @Autowired 注入 線程池(ThreadPoolTaskExecutor 或 ExecutorService),從而管理線程的創(chuàng)建和執(zhí)行,以下是使用 @Autowired 方式注入線程池的完整示例,感興趣的朋友一起看看吧2025-03-03Java CompletableFuture 異步超時實現(xiàn)深入研究
這篇文章主要為大家介紹了Java CompletableFuture 異步超時實現(xiàn)深入研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02詳解Spring Boot配置使用Logback進行日志記錄的實戰(zhàn)
本篇文章主要介紹了詳解Spring Boot配置使用Logback進行日志記錄的實戰(zhàn),具有一定的參考價值,有興趣的朋友可以了解一下2017-07-07