Spring Boot 2启动Tomcat失败求助:invalid LOC header错误
Hey Rahul, 别慌,这个错误我刚接触Spring Boot的时候也碰到过!报错里的invalid LOC header (bad signature)其实是说你的Maven本地仓库里的tomcat-embed-core-8.5.31.jar文件损坏了,Spring Boot没法正常读取它来启动内置Tomcat。下面是一步步帮你解决的办法:
第一步:删除损坏的Jar包文件
找到报错里的路径:/home/rahul/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/,把这个文件夹里的所有文件(包括那个损坏的jar包、pom文件等)全部删掉。这一步是为了清除已经损坏的缓存文件。第二步:重新拉取完整的依赖
打开你的项目根目录,在终端里运行这条Maven命令:mvn clean install -U这里的
-U参数会强制Maven去远程仓库重新下载所有依赖,确保新拉取的tomcat-embed-core包是完整无损坏的。第三步:重新启动项目
等依赖下载完成后,再次尝试运行你的Example.java里的main方法启动Spring Boot项目。如果一切顺利,Tomcat应该就能正常启动了。
如果还是出现类似的Jar包损坏错误,那可能是你的Maven仓库里还有其他损坏的文件。这种情况下,可以考虑先备份一下.m2/repository里你自己上传的本地依赖,然后删掉整个.m2/repository文件夹,再重新执行mvn clean install,让Maven重新下载所有依赖。
另外,如果你用的是IDE(比如IntelliJ IDEA或者Eclipse),也可以直接通过IDE的Maven面板点击"Reload All Maven Projects"按钮来重新加载依赖,效果和命令行是一样的~
内容的提问来源于stack exchange,提问作者rahul shalgar

