我的java程序打包在jar文件中,并使用外部jar库bouncy castle。我的代码可以正常编译,但是运行jar会导致以下错误:
线程“主”中的异常java.lang.SecurityException:清单主要属性的无效签名文件摘要
我在Google上搜索了一个多小时,一直在寻找解释,却发现价值不大。如果有人之前曾见过此错误并可以提供帮助,则我有义务。
此处列出的解决方案可能会提供一个指针。
清单主要属性的无效签名文件摘要
底线:
最好保留官方jar,然后将其作为依赖项添加到应用程序jar文件的清单文件中。
对于那些尝试使用创建uber-jar时遇到此错误的人maven-shade-plugin,解决方案是通过将以下行添加到插件配置中来排除清单签名文件:
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>