一尘不染

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

java

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

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

我在Google上搜索了一个多小时,一直在寻找解释,却发现价值不大。如果有人之前曾见过此错误并可以提供帮助,则我有义务。


阅读 629

收藏
2020-02-29

共2个答案

一尘不染

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

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

底线:

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

2020-02-29
一尘不染

对于那些尝试使用创建uber-jar时遇到此错误的人maven-shade-plugin,解决方案是通过将以下行添加到插件配置中来排除清单签名文件:

<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>
2020-02-29