迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 错误 Invalid LOC Header (Bad Signature)

作者:迹忆客 最近更新:2023/07/11 浏览次数:

本篇文章介绍了 Java 的无效 LOC 标头(错误签名)错误。


Java 中无效的 LOC 标头(错误签名)

每当本地 Maven 存储库中的 jar 文件损坏时,就会出现无效 LOC 标头(错误签名)错误。 本地存储库是从我们的文件系统中的 Maven 项目下载的文件。

Maven 下载的每个项目都附带其 MD5 和 SHA1 文件。

这些MD5和SHA1文件的目的是保证原始文件的原创性和完整性。 由于错误可能发生在网络和文件系统中,因此这些校验和文件也可能损坏,使其与原始文件不匹配。

通常,这种情况下会出现无效 LOC 标头(错误签名)错误。 下面给出了针对此错误的场景和解决方案。


删除本地存储库

从名称中可以清楚地看出,我们需要删除整个本地存储库并创建一个新的 Maven 项目。 这将删除所有 Maven 存储库文件,再次下载项目文件,并删除缓存。

以下命令可以删除存储库。

rm -rf ${LOCAL_REPOSITORY}

我们可以在settings.xml文件中指定本地存储库。 本地存储库的默认路径是${user.home}/.m2/repository。


删除损坏的 jar 文件

如果我们发现损坏的jar文件,我们可以删除它,问题就解决了。 Maven 输出堆栈命令可以在处理失败时向我们显示损坏的 jar。

我们可以通过在构建命令中添加 -X 来启用日志记录。

mvn -X package

上述命令将在日志文件中指示损坏的 jar 文件。 我们可以在 Maven 存储库中找到该 jar 文件并将其删除。

Maven 将在构建时重新下载该文件。 可以使用 zip -T 命令测试存档的完整性。

find ${LOCAL_REPOSITORY} -name "*.jar" | xargs -L 1 zip -T | grep error

验证 MD5 和 SHA1 校验和

以上两种解决方案都可以使Maven重新下载jar文件。 在这些情况下,将来的下载中可能会出现相同的无效 LOC 标头。

配置 Maven 以在从远程存储库下载项目时验证 MD5 和 SHA1 校验和将防止无效 LOC 标头错误。

Maven 命令中添加了 –strict-checksums 或 -C 选项,当校验和与校验和文件的值不匹配时,这将导致 Maven 构建失败。

这可以通过两种方式完成,使构建失败或对其发出警告; 警告选项是默认选项。 使用以下命令来失败或发出警告。

-C,--strict-checksums

-c,--lax-checksums

由于Maven在将工件上传到存储库时需要签名文件,因此存储库中可能存在没有签名文件的工件; 这就是为什么警告选项是默认选项的原因

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

解决 Java 中 Generic Array Creation 错误

发布时间:2023/07/12 浏览次数:189 分类:Java

本篇文章通过代码示例说明了 generic array creation 错误,并重点介绍了创建通用数组时出现此错误的原因。 本次讨论将得出解决方案,我们将学习如何使用对象数组和反射功能创建通用数组。

修复 Java 错误 java.lang.UnsupportedClassVersionError

发布时间:2023/07/12 浏览次数:125 分类:Java

本篇文章介绍了 Java 中的 Exception in thread main java.lang.UnsupportedClassVersionError 错误。java.lang.UnsupportedClassVersionError的原因 UnsupportedClassVersionError 是 ClassFormatError 异常的子类,当 JVM 尝试读取类并发现

修复 Class X Is Public Should BeDeclared in a File Named X.java 错误

发布时间:2023/07/12 浏览次数:192 分类:Java

我们将经历各个阶段,从演示一个编译时错误开始,该错误指出类 X 是公共的,应该在名为 X.java 的文件中声明。 class X is public, should be declared in a file named X.java 的原因 然后,我们将看到导致此

Java 错误 Could Not Reserve Enough Space for Object Heap Minecraft

发布时间:2023/07/11 浏览次数:125 分类:Java

本篇文章介绍了 Java 中的 Could not reserve enough space for object heap 错误。Minecraft 是一款非常流行的用 Java 开发的游戏,我们需要 Java 来运行它。Java 中Minecraft 错误Could not reserve enough space for object h

Java 错误 Cannot Determine a Valid Java Home

发布时间:2023/07/11 浏览次数:149 分类:Java

本篇文章介绍了 Java 中的 cannot determine a valid java home 错误。当 Java Home 路径设置不正确时,会出现 cannot determine a valid java home 错误。 我们必须按照以下步骤正确设置我们的 Java Home 来解决这个问

Java 错误 Class Expected

发布时间:2023/07/11 浏览次数:66 分类:Java

在本文中,我们将研究 Java 中的“.class” expected错误是什么。“.class” expected错误是编译时错误。 有些人可能会感到困惑,因为他们认为这是一个运行时错误,但这是错误的。

Java 错误 Constructor Is Undefined

发布时间:2023/07/11 浏览次数:192 分类:Java

本文将研究 Java 的错误,constructor not defined。Java 中的constructor not defined错误 构造函数未定义是一个非常常见的错误。

修复 Java 错误 Java.Net.SocketException: Permission Denied

发布时间:2023/07/11 浏览次数:124 分类:Java

本篇文章介绍了 Java 中的 java.net.SocketException:Permission denied 错误。Java中出现 java.net.SocketException: Permission returned 错误的原因 SocketException 通常在网络连接出现问题时发生。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便