posts - 23,  comments - 3,  trackbacks - 0
今天客户发过来一个新的jar包B.jar,让我替换原来的进行测试,但是替换完毕执行后,出现如下错误:
C:\Program Files\Java\jdk1.5.0_16
Exception in thread "main" java.lang.SecurityException: class "xx.xx"'s signer information does not match signer information of other classes in the same package
        at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
        at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at xx.xx(xx.java:80)

网上搜了一圈,大部分说引入的jar包呢有相同类名的类,所以loader的时候出现错误。

但是目前做的一个小产品,只有两个jar包,A.jar和前文提到的B.jar,没有引入第三方包。我仔细查了一下两个jar包,不存在相同类名的情况。

最后发现这个问题很多时候和数字签名这个关键字一起出现。然后仔细检查,发现新的B.jar里面忘记加数字签名了。

把A.jar里面的数字签名删除,运行正常。

目前在等待加完数字签名的B.jar,也在查资料寻找出现此问题的原因,未完待续。
posted on 2011-08-18 18:53 temper 阅读(5084) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: