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

我的Java程序打包在一个jar文件中,并使用外部jar库,充气城堡。 我的代码编译得很好,但运行该jar会导致以下错误:

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

我搜索了一个多小时的搜索解释,发现价值很小。 如果有人曾经看到过这个错误,并可以提供一些帮助,我会被迫。


这里列出的解决方案可能提供一个指针。

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

底线:

将官方jar保留原样并将其作为应用程序jar文件的清单文件中的依赖项添加可能是最好的选择。


对于那些在尝试使用maven-shade-plugin创建超级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>

对于那些使用gradle并试图创建和使用胖jar的人来说,下面的语法可能会有所帮助。

jar {
    doFirst {
        from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' 
}
链接地址: http://www.djcxy.com/p/55013.html

上一篇: "Invalid signature file" when attempting to run a .jar

下一篇: Apache Camel message format