Вопрос по java – Проблемы с интеграцией BouncyCastle Jar

9

Хорошо, теперь я скажу, что я очень мало знаю о Java. Мне дали банку Bouncy Castle и сказали, что в ней будет то, что мне нужно для выполнения этого задания. Файл Jarbcprov-jdk15on-147.jar, Я также делаю это на Unix-машине, поддерживаемой моей школой, поэтому я не могу зайти и поиграть со всеми файлами Java.

Когда я компилирую свой класс, используя Javac (в частности, я использую командуjavac -classpath bcprov-jdk15on-147.jar encrypt.java), он компилируется без ошибок, но когда я иду, чтобы запустить программу позже, используя командуjava encryptЯ получаю это сообщение об ошибке:

<code>Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
</code>

Мой файл Jar находится в моей главной папке со всеми остальными моими файлами, на случай, если он должен пойти куда-то особенным, и это то, что я не сделал.

Когда я делаюjava -classpath bcprov-jdk15on-147.jar encrypt это ошибка, которую я получаю:

<code>    Exception in thread "main" java.lang.NoClassDefFoundError: encrypt
Caused by: java.lang.ClassNotFoundException: encrypt
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
</code>

Почему у меня проблемы с запуском скомпилированной программы?

Ваш Ответ

1   ответ
6

java -classpath bcprov-jdk15on-147.jar:. encrypt

Это потому, что вашей программе также необходимо иметь любые библиотеки, которые она использует как часть пути к классам во время работы, а не только во время компиляции.

Ах! Это сделал это! Спасибо! user1174511
Есть ли какие-либо настройки, которые вы можете установить, чтобы вам не нужно было делать это во время выполнения? у моего classpath уже есть эта банка.
Как только мне разрешат через 4 минуты, я сделаю это! user1174511
Ага!. Это была проблема с classpath. И что это за "немного другая ошибка"? ты получаешь сейчас? Я обновил свой ответ, чтобы также учесть локальный путь к классам, попробуйте еще раз.
Я только что попробовал это, и я получил сообщение об ошибке выше: user1174511

Похожие вопросы