library source does not match the bytecode for class


在IDEA中閱讀代碼時,時常會跟蹤到jar包源碼層面,會點擊Download Sources,源碼包就會被下載到idea中

 

但是當pom.xml引入了新的版本,此時,再次閱讀源碼時,就會提示”library source does not match the bytecode for class“ 庫源與類的字節碼不匹配

原因是:源碼文件(xxx-sources.jar)和字節碼文件(xxxx.jar)不匹配

 

 網上的解決方案無非以下幾種

1、使用了lombok,禁用lombok

2、invalidate caches /restart清空idea緩存重新啟動

3、刪除maven倉庫中的jar包

經過以上嘗試,都無法解決,最終在stack overflow中找到了解決方案

 

解決方案:刪除xxxx.jar 對應的 xxx-sources.jar文件,重新Download Sources

 

① 定位該class類在jar包中的位置

如下所示:CommonsMultipartFile.class 文件在 org.springframework.web:4.3.12.RELEASEjar包中

 

② 右鍵此類,選擇Copy--->Copy Path,找到該類的存儲位置

 

③ 進入該目錄,刪除所有后綴帶-sources.jar的文件

rm -rf spring-web-4.3.12.RELEASE-sources*

 打開idea(無須重啟),就沒有錯誤提示了

 

 

參考鏈接:https://stackoverflow.com/questions/36753524/library-source-does-not-match-the-bytecode-for-class


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM