问题:
xx.jar; invalid LOC header(bad signature)
发生场景
- 使用maven下载依赖包之后,启动spring应用或者是启动tomcat等服务器时
原因及解析
- 错误得内容是:xx.jar这个文件出错,无效得LOC头(错误得标签)
- LOC可以认为是Length Of Code得简写。也是文件得大小,那这里得签名有做和解释呢?
- 出于安全性考虑,一般得库或者在发布得时候会使用哈希算法(比如MD5)对文件进行哈希运算并产生一个消息摘要,如果这个文件被篡改,重新生成得hash码肯定不一样。
- 错误得原因是因为该jar得下载有问题,到本地maven库中找到该文件,使用压缩工具(比如Winzip)打不开,报错。文件没有被完整得下载,出现这个问题得原因有可能是:
- 一次下载得依赖包太多
- 网络不好
- 在idea中终端下载
- 该问题在初始化项目得时候出现概率较大
解决方法
- 在本地maven库找到该jar得目录,删除之后,使用mvn install等命令重新下载