为了账号安全,请及时绑定邮箱和手机立即绑定

请问JavaSecurityException:签名者信息不匹配

/ 猿问

请问JavaSecurityException:签名者信息不匹配

牛魔王的故事 2019-10-22 17:12:32

JavaSecurityException:签名者信息不匹配

我像往常一样重新编译了我的类,突然收到了下面的错误消息。为什么?我怎么才能修好它?

java.lang.SecurityException: class "Chinese_English_Dictionary"'s signer information does not match signer information
 of other classes in the same package
    at java.lang.ClassLoader.checkCerts(ClassLoader.java:776)


查看完整描述

3 回答

?
慕森王

当属于同一包的类从不同的JAR文件中加载时,而这些JAR文件的签名使用不同的证书-或者更常见的是,至少有一个签名而另一个或多个没有签名(这包括从目录加载的类,因为这些AFAIK无法签名),就会发生这种情况。

因此,要么确保所有JAR(或至少包含来自相同包的类)都使用相同的证书进行签名,要么使用重叠包从JAR文件清单中删除签名。


查看完整回答
反对 回复 2019-10-23
?
阿波罗的战车

一个简单的方法就是尝试更改导入JAR文件的顺序,这可以从Eclipse中完成。右键单击包->构建路径->配置构建路径->引用和库->订单和导出。尝试更改包含签名文件的JAR的顺序。



查看完整回答
反对 回复 2019-10-23
?
慕函数4003404

答:如果使用Maven,调试冲突JAR的一种有用方法是:

mvn dependency:tree

例如,对于一个例外:

java.lang.SecurityException: class "javax.servlet.HttpConstraintElement"'s signer information does not match signer information of 
other classes in the same package

我们需要:

mvn dependency:tree|grep servlet

其产出:

[INFO] +- javax.servlet:servlet-api:jar:2.5:compile

[INFO] +- javax.servlet:jstl:jar:1.2:compile

[INFO] |  +- org.eclipse.jetty.orbit:javax.servlet.jsp:jar:2.2.0.v201112011158:compile

[INFO] |  +- org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821:compile

[INFO] |  +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile

[INFO] +- org.eclipse.jetty:jetty-servlet:jar:9.0.0.RC2:compile

显示了Servlet-API 2.5和javax.Servlet 3.0.0.x之间的冲突。

B.其他有用的提示(如何调试安全异常和如何排除maven deps)位于签名者信息不匹配.



查看完整回答
反对 回复 2019-10-23

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信