![](/img/trans.png)
[英]java.lang.NoClassDefFoundError: org.bouncycastle.jce.provider.BouncyCastleProvider
[英]java.lang.NoClassDefFoundError with two BouncyCastle jars
我在項目中包含了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
是bcpkix-jdk15on-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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.