带有两个BouncyCastle jar的java.lang.NoClassDefFoundError

时间:2017-05-24 12:11:27

标签: java bouncycastle

我已将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罐子?

1 个答案:

答案 0 :(得分:3)

org/bouncycastle/jcajce/JcaJceHelper出现错误,而org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest则错误。

问题: 您正在使用的jar文件版本。 bcpkix-jdk15on-1.47版本为1.47,而bcprov-jdk15on-1.57版本为1.57。

<{1}}中提供了

org/bouncycastle/jcajce/JcaJceHelper,但bcprov-jdk15on-1.47中未提供该页面。在版本1.57中,它以bcprov-jdk15on-1.57提供。

Netbeans无法检测到此问题,因为只有在运行代码时才会出现此问题。它不会在编译时捕获。

<强> 解决方案: 是的,你可以同时使用两个罐子。只需使用相同的版本。使用org/bouncycastle/jcajce/util/JcaJceHelper 使用bcpkix-jdk15on-1.57