java - 添加 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 运行 + 记事本。
顺便说一句,加密是一种方法,而不是大写所暗示的类。
解决方案
推荐阅读
- python-3.x - 脚本使用时使 youtube-dl 显示输出
- reactjs - 如何使用从另一个文件导入的功能组件在 React Native 中显示模态
- pandas - 使用 yum 在 rhel 上安装 pandas
- selenium-webdriver - 从方法中删除 browser.sleep()
- reactjs - 我们可以在哪里放置 `Office.onReady()` 以确保 Office.js 每次都能完全加载
- python - 如何解决 Python 文件中“找不到指定文件”的问题?
- javascript - 在 react-native 模块中使用 DeviceEventEmitter.addListener
- linux - 从 Mint 到 RPi 的 SSH 文件传输不是双向的
- python - python mysql连接器,如何创建用户定义的数据库
- jquery - 如何让我的按钮一次显示一项?