[英]java.lang.NoClassDefFoundError with two BouncyCastle jars
I have included 2 BC jars into my project: bcpkix-jdk15on-1.47.jar and bcprov-jdk15on-157.jar . 我在项目中包含了2个BC罐: bcpkix-jdk15on-1.47.jar和bcprov-jdk15on-157.jar 。
As the first line in code I have added: 作为代码的第一行,我添加了:
Security.addProvider(new BouncyCastleProvider());
Exception occurs on the line: 在线发生异常:
JcaPKCS10CertificationRequest csrNew = new JcaPKCS10CertificationRequest(request);
By the way it is imported: import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest;
But I am still getting : 但是我仍然得到:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/bouncycastle/jcajce/JcaJceHelper at implementation.Util.generateCSR(Util.java:396) 线程“ AWT-EventQueue-0”中的异常java.lang.NoClassDefFoundError:实施时的org / bouncycastle / jcajce / JcaJceHelper.Util.generateCSR(Util.java:396)
NetBeans found class regularly, but when I run project exception happens. NetBeans定期发现类,但是在我运行项目时发生异常。
Is there any way how could I regularly include both of these two BouncyCastle jars? 有什么办法可以定期包含这两个BouncyCastle罐子吗?
Error is coming for org/bouncycastle/jcajce/JcaJceHelper
, not for org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest
. org/bouncycastle/jcajce/JcaJceHelper
,而不是org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest
。
Problem: versions of jar files you are using. 问题:您正在使用的jar文件的版本。 bcpkix-jdk15on-1.47
is version 1.47, whereas bcprov-jdk15on-1.57
is version 1.57. bcpkix-jdk15on-1.47
是bcpkix-jdk15on-1.47
版,而bcprov-jdk15on-1.57
是1.57版。
org/bouncycastle/jcajce/JcaJceHelper
was available in bcprov-jdk15on-1.47
but it is not available in bcprov-jdk15on-1.57
. org/bouncycastle/jcajce/JcaJceHelper
在bcprov-jdk15on-1.47
可用,但在bcprov-jdk15on-1.57
不可用。 In version 1.57, it is available as org/bouncycastle/jcajce/util/JcaJceHelper
. 在1.57版中,它可以作为org/bouncycastle/jcajce/util/JcaJceHelper
。
Netbeans is unable to detect the issue, because this issue would come only when you run the code. Netbeans无法检测到该问题,因为只有在运行代码时才会出现此问题。 It will not be caught at compile time. 在编译时不会被捕获。
Solution: Yes, you can use both jars together. 解决方案:是的,您可以将两个罐子一起使用。 Just use the same version. 只需使用相同的版本。 Either use bcpkix-jdk15on-1.57
OR use bcprov-jdk15on-1.47
. 使用bcpkix-jdk15on-1.57
或使用bcprov-jdk15on-1.47
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.