今天編譯maven項目的時候發現報java.util.zip.ZipException: invalid CEN header 的錯誤,正好也藉着這次報錯也把我的解決方案和大家分享一下
首先把錯誤信息貼出來
java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(Unknown Source)
at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readInt(Unknown Source)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readID(ClassParser.java:237)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:114)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1917)
在錯誤信息的上面往往會指明是哪一個包報錯
(例如:[xxx/xxxx/xxxx/standard-1.1.2.jar!/] for annotations)
這時候你只需要去你的maven庫下找到對應的包刪除掉,之後再update project讓maven自己下載即可(alt+F5)
上面提到的解決方式一般可以解決你的問題,如果你的問題還沒有得到解決,那麼請看第二種方式(下載全部jar包)
1.project–>clean 先clean下該項目
2.打開(Run–>Run Configurations)選擇maven builder
3.在base directory中選擇項目
4.在goals中輸入clean install -U,點擊run即可
注:當你的maven項目存在大量jar包未下載的情況(例如在下載時,eclipse或myeclipse非正常關閉了會導致大量jar包下載失敗),上述方法仍然有效