invalid LOC header(bad signature)錯誤及解決

問題

xx.jar; invalid LOC header(bad signature)

發生場景
使用Maven下載依賴包後,啓動Spring應用或是啓動Tomcat等服務器時。

原因及解析
錯誤的內容是: xx.jar這個文件出錯,無效的LOC頭(錯誤的簽名)。
LOC可以認爲是 Length Of Code的簡寫。也就是文件的大小, 那這裏的簽名有做和解釋呢?
出於安全性考慮, 一般的的庫或軟件在發佈的時候會使用哈希算法(比如MD5)對文件進行哈希運算併產生一個消息摘要,如果這個文件被篡改,重新生成的Hash碼肯定不一樣。關於消息摘要的內容可以參考:
消息摘要(Message Digest)及其算法https://blog.csdn.net/oscar999/article/details/104071469

基於以上考慮, 推斷錯誤的原因就是該jar的下載有問題, 到本地Maven庫中找到該文件, 使用壓縮工具(比如WinZip)打不開,報錯。文件沒有被完整的下載。出現這個問題的原因有可能是:

  • 一次下載的依賴包太多
  • 網絡不好
  • 在Eclipse中中斷下載
    該問題在初始化項目的時候出現概率較大。

解決方法
在本地Maven庫找到該jar 的目錄, 刪除之後 使用mvn eclipse:eclipsemvn install 等命令重新下載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章