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

こ雲淡風輕ζ 提交于 2020-02-27 03:29:58

我的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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!