我的Java程序打包在jar文件中,并使用外部jar库bouncy castle 。 我的代码可以正常编译,但是运行jar会导致以下错误:
线程“主”中的异常java.lang.SecurityException:清单主要属性的无效签名文件摘要
我在Google上搜索了一个多小时,一直在寻找解释,却发现价值不大。 如果有人以前曾见过此错误并可以提供帮助,我将有义务。
#1楼
对于使用gradle并尝试创建和使用胖子的人,以下语法可能会有所帮助。
jar {
doFirst {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}
#2楼
两种不同的签名者可能会使Java思维混乱。
尝试从jar中删除META-INF文件夹,添加清单并再次签名JAR,它对我有帮助: http : //jehy.ru/articles/2013/12/13/invalid-signature-file-digest-for-manifest-main-属性/
#3楼
如果在尝试为Xamarin.Android绑定项目绑定JAR文件时遇到这种情况,请执行以下操作:
JARTOXML:警告J2XA006:反映com.your.class时,引发缺少类错误:清单主要属性的无效签名文件摘要
只需使用Winzip打开JAR文件并删除meta-inf目录。 重建-工作完成
#4楼
使用IntelliJ IDEA 14.01时出现此问题。
我可以通过以下方式修复它:
File-> Project Structure-> Add new(Artifacts)-> jar-> From Modules并具有从模块窗口中创建Jar的相关性:
选择你的主班
库中的JAR文件选择复制到输出目录并通过清单链接
#5楼
将新jar中的META-INF文件夹与旧jar进行比较(在添加新库之前)。 有可能会有新文件。 如果是,则可以将其删除。 应该会有所帮助。 问候,999michal
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3161806