尝试运行 .jar 时出现“无效的签名文件”

新手上路,请多包涵

我的 java 程序打包在一个 jar 文件中,并使用外部 jar 库 bouncy castle 。我的代码编译正常,但运行 jar 会导致以下错误:

线程“main”中的异常 java.lang.SecurityException:清单主要属性的签名文件摘要无效

我在谷歌上搜索了一个多小时来寻找解释,但发现价值很小。如果有人以前看到过这个错误并且可以提供一些帮助,我将不胜感激。

原文由 user123003 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

此处列出的解决方案可能会提供一个指针。

清单主要属性的签名文件摘要无效

底线:

最好保持官方 jar 原样,并将其作为依赖项添加到应用程序 jar 文件的清单文件中。

原文由 Nrj 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于那些在尝试使用 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>

原文由 ruhsuzbaykus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题