运行 JAR 文件时出现“无效签名文件”错误
尝试执行 Java 存档 (JAR) 文件时,某些情况下可能会出现问题导致令人困惑的错误:“清单主要属性的签名文件摘要无效。”当您的程序使用外部库并打包为 JAR 时,可能会出现此问题。
导致此错误的一个潜在原因在于 JAR 中存在清单签名文件。这些文件是签名过程的典型副产品,签名过程是 JAR 文件的安全措施。当尝试使用 maven-shade-plugin 创建着色的“uber-JAR”时,排除配置对于防止这种冲突至关重要。
要解决此问题,请通过添加以下过滤器部分来修改插件配置:
<configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <!-- Additional configuration. --> </configuration>
此配置从 uber-JAR 中排除清单签名文件(SF、DSA、RSA),从而消除了错误的根源。通过此修改,您的程序应该可以成功运行,而不会遇到“无效的签名文件”异常。
以上是如何修复 JAR 文件中的'清单主要属性的签名文件摘要无效”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!