试图运行.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