首页 > 解决方案 > 添加 bouncycastle 后无法运行 .class 文件

问题描述

使用以下命令编译应用程序后:

javac -cp bcprov-jdk15on-162.jar EncryptionTool.java

当我尝试运行它时,它可以成功运行

java EncryptionTool

我明白了

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.privateGetMethodRecursive(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 7 more

相关代码:

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.Security;
import java.util.Base64;


public class EncryptionTool
{
    public static void main(String[] args)
    {
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        String result = Encrypt("password");
        System.out.println(result);
    }
}

这几乎都是香草 java,没有任何雕刻或日食。只需使用 javac 编译和 java 运行 + 记事本。

顺便说一句,加密是一种方法,而不是大写所暗示的类。

标签: java

解决方案


推荐阅读