java.lang.NoClassDefFoundError 有两个 BouncyCastle 罐子
java.lang.NoClassDefFoundError with two BouncyCastle jars
我在我的项目中包含了 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 imported: import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest;
但我仍然得到:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/bouncycastle/jcajce/JcaJceHelper
at implementation.Util.generateCSR(Util.java:396)
NetBeans 定期发现 class,但是当我 运行 项目时发生异常。
有什么方法可以定期包含这两个 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
.
我在我的项目中包含了 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 imported: import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest;
但我仍然得到:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/bouncycastle/jcajce/JcaJceHelper at implementation.Util.generateCSR(Util.java:396)
NetBeans 定期发现 class,但是当我 运行 项目时发生异常。
有什么方法可以定期包含这两个 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
.