我使用maven程序集插件将我的程序打包在一个jar-with-dependencies(一个不可执行的jar包含我的程序以及从它所依赖的jar中提取的所有类)。当我打电话给Bouncy Castle加密文件时,它会抛出异常,其根本原因是:
java.util.jar.JarException:file:Foo.jar有未签名的条目
签署我的jar会解决问题吗?有没有办法让Bouncy Castle跳过检查未签名的课程?如果我确实需要签名,我可以在构建jar时让maven自动执行吗?
答案 0 :(得分:0)
JCE是这些类型错误的一个来源。在Java 8中,错误是:
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
问题是使用Maven shade之类的东西提取文件会破坏JCE(explanation)所需的签名。
解决方案是使用类似executable maven packer之类的东西来创建一个jar,它也保存BouncyCastle jar文件。