Invalid signature file digest for Manifest main attributes
maven项目使用加密工具类引入了一些依赖后,打jar包并执行jar包出现Invalid signature file digest for Manifest main attributes的错误
网上找的资料说是由于有些依赖中重复引用了某个包,以至于打包之后的META-INF的目录下多出了一些*.SF,.DSA,.RSA文件所致,可手动删除这些问题后,再执行jar包
通过java指令执行jar包,提示Invalid signature file digest for Manifest main attributes
解决方案1:(手动删除文件)
通过压缩软件查看程序生成的jar包,可以看到META文件下有.SF,.DSA结尾的文件,手动删除后,再查看该目录下MANIFEST.MF文件中是否有指定要运行的main方法路径,不存在则手动添加,修改后保存,即可正常执行jar包
方案二:maven中使用打包插件排除(推荐)
org.apache.maven.plugins maven-shade-plugin 3.2.1 package shade com.ctid.kms.report.transform.TransformMain *:* module-info.class META-INF/*.SF META-INF/*.DSA META-INF/*.RSA
低版本的maven-shade-plugin在配置filter artifact时会报 No artifact matching filter 错误,不能排除指定的文件
具体原因不知,或许是低版本语法不同,有知道的可以告知一下,我这里使用3.2.1 版本,打jar包后,查看程序META-INF目录已经不再生成 *.SF等文件,jar包也可正常运行
来源地址:https://blog.csdn.net/weixin_51172484/article/details/127894334
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341