1. 程式人生 > >java.util.zip.ZipException: invalid LOC header (bad signature)(不白看)

java.util.zip.ZipException: invalid LOC header (bad signature)(不白看)

一、錯誤原因

bad signature 表明你使用的jar包損壞了。每個jar包最初生成時為了安全都會有一個數字簽名(一旦生成會改變),以防止別人對jar包進行篡改,因為jar包裡的檔案內容一旦改變,使用某個演算法根據檔案內容計算出的數字簽名和最初發布jar包時的數字簽名不一致。在你使用jar包時,首先會驗證數字簽名,bad signature ,檔案不一致,為了安全,就不可以使用了,這也是java安全機制之一。
嘮叨幾句:查看了網上很多解決方案,大多都是說如何解決。有的只是針對具體的問題,別人和他的根本不是一個問題。有點還好,問題解決了,但不知到問題出在哪裡。挺難受。
另外:這個 Loc 可能是代表著數字簽名吧,實在是查不到
二、解決
找出損壞jar包,並替換


如果是maven工程和eclipse(或myeclipse)
這裡寫圖片描述
我的是:jackson-data.jar版本2.7,更換了版本為2.6。

如果是其他專案管理工具,自己百度相關方法吧,反正是jar包有問題,不能用了。
實在不行,你一次替換一個jar包,然後去執行tomcat,直到成功。這個控制變數法也可以解決。