我在项目中包含了2个BC罐:bcpkix-jdk15on-1.47.jar和bcprov-jdk15on-157.jar。
作为代码的第一行,我添加了:
Security.addProvider(new BouncyCastleProvider());
在线发生异常:
JcaPKCS10CertificationRequest csrNew = new JcaPKCS10CertificationRequest(request);
By the way it is imported: import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest;
但是我仍然得到:
线程“ AWT-EventQueue-0”中的异常java.lang.NoClassDefFoundError:org / bouncycastle / jcajce / JcaJceHelper
在实施时.Util.generateCSR(Util.java:396)
NetBeans定期发现类,但是在我运行项目时发生异常。
有什么办法可以定期包含这两个BouncyCastle罐子吗?
最佳答案
org/bouncycastle/jcajce/JcaJceHelper
而不是org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest
出现错误。
问题:您正在使用的jar文件的版本。 bcpkix-jdk15on-1.47
是版本1.47,而bcprov-jdk15on-1.57
是版本1.57。org/bouncycastle/jcajce/JcaJceHelper
在bcprov-jdk15on-1.47
中可用,但在bcprov-jdk15on-1.57
中不可用。在1.57版中,它可以作为org/bouncycastle/jcajce/util/JcaJceHelper
使用。
Netbeans无法检测到该问题,因为只有在运行代码时才会出现此问题。在编译时不会被捕获。
解:
是的,您可以同时使用两个罐子。只需使用相同的版本。使用bcpkix-jdk15on-1.57
或使用bcprov-jdk15on-1.47
。
关于java - 带有两个BouncyCaSTLe jar 的java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44158100/