带有两个BouncyCastle jar的java.lang.NoClassDefFoundError
我已经在我的项目中包括了2个BC jar:bcpkix-jdk15on-1.47.jar和bcprov-jdk15on-157.jar 作为我添加的代码的第一行:带有两个BouncyCastle jar的java.lang.NoClassDefFoundError,java,bouncycastle,Java,Bouncycastle,我已经在我的项目中包括了2个BC jar:bcpkix-jdk15on-1.47.jar和bcprov-jdk15on-157.jar 作为我添加的代码的第一行: Security.addProvider(new BouncyCastleProvider()); 行上发生异常: JcaPKCS10CertificationRequest csrNew = new JcaPKCS10CertificationRequest(request); By the way it is import
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罐子吗?错误是针对
org/BouncyCastle/jcajce/JcaJceHelper
,而不是针对org.BouncyCastle.pkcs.jcajce.jcapkcs10认证请求的
问题:您正在使用的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
谢谢您的回复!我成功地添加了bcpkix-jdk15on-1.57.jar。很高兴提供帮助:)这个答案有一些错误。但无论如何,bouncycastle的版本控制非常差,而且unprofessional@francogrex让我知道错误。最好纠正一下。