我已将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 在implementation.Util.generateCSR(Util.java:396)
NetBeans定期发现类,但是当我运行项目异常时。
有什么方法可以定期包括这两个BouncyCastle罐子?
答案 0 :(得分:3)
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
中未提供该页面。在版本1.57中,它以bcprov-jdk15on-1.57
提供。
Netbeans无法检测到此问题,因为只有在运行代码时才会出现此问题。它不会在编译时捕获。
<强> 解决方案: 强>
是的,你可以同时使用两个罐子。只需使用相同的版本。使用org/bouncycastle/jcajce/util/JcaJceHelper
或使用bcpkix-jdk15on-1.57
。