Создание jar-файла, включая внешние библиотеки с подписанными jar-файлами, вызывающими исключение безопасностиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Создание jar-файла, включая внешние библиотеки с подписанными jar-файлами, вызывающими исключение безопасности

Сообщение Anonymous »

поэтому в настоящее время я создаю клиентский проект OPC UA в Java. Единственная/лучшая актуальная библиотека с открытым исходным кодом, которую я нашел, - это Eclipse Milo. Я импортирую его с помощью maven по адресу org.eclipse.milo:skd-client:0.6.8. Мне нужно, чтобы окончательный проект был работоспособным jar. При запуске проекта в InteliJ я не получаю ошибок компиляции, но после компиляции в jar я получаю исключение:

Код: Выделить всё

error: a jni error has occurred, please check your installation and
try again exception in thread "main" java.lang.securityexception:
invalid signature file digest for manifest main attributes at java.base/sun.security.util.signaturefileverifier.processimpl(signaturefileverifier.java:339) at
java.base/sun.security.util.signaturefileverifier.process(signaturefileverifier.java:281) at
java.base/java.util.jar.jarverifier.processentry(jarverifier.java:320) at java.base/java.util.jar.jarverifier.update(jarverifier.java:232) at
java.base/java.util.jar.jarfile.initializeverifier(jarfile.java:760) at
java.base/java.util.jar.jarfile.getinputstream(jarfile.java:858) at java.base/jdk.internal.loader.urlclasspath$jarloader$2.getinputstream(urlclasspath.java:837) at
java.base/jdk.internal.loader.resource.cachedinputstream(resource.java:77) at
java.base/jdk.internal.loader.resource.getbytebuffer(resource.java:163) at java.base/jdk.internal.loader.builtinclassloader.defineclass(builtinclassloader.java:853) at
java.base/jdk.internal.loader.builtinclassloader.findclassonclasspathornull(builtinclassloader.java:760) at
java.base/jdk.internal.loader.builtinclassloader.loadclassornull(builtinclassloader.java:681) at
java.base/jdk.internal.loader.builtinclassloader.loadclass(builtinclassloader.java:639) at
java.base/jdk.internal.loader.classloaders$appclassloader.loadclass(classloaders.java:188) at
java.base/java.lang.classloader.loadclass(classloader.java:528) at java.base/java.lang.class.forname0(native method) at java.base/java.lang.class.forname(class.java:578) at
java.base/java.lang.class.forname(class.java:557) at java.base/sun.launcher.launcherhelper.loadmainclass(launcherhelper.java:847) at
java.base/sun.launcher.launcherhelper.checkandloadmain(launcherhelper.java:732)
однако, как ни странно, это исключение недавно изменилось на:

Код: Выделить всё

Error: Could not find or load main class Main
Caused by: java.lang.ClassNotFoundException: Main
не знаю, почему это изменилось, но виновник, похоже, тот же. После некоторых исследований выяснилось, что виновником является библиотека eclipse milos, включая «подписанные банки». Решение, которое я нашел, запускалось: zip -d file.jar 'META-INF/.SF' 'META-INF/.RSA' в командной строке, которая удаляет все подписанные файлы jar, и после этого jar будет запуститься правильно без любого из вышеперечисленных исключений. Однако оказывается, что мне нужны эти подписанные jar-файлы, поскольку другие аспекты проекта без них работают неправильно.
Кто-нибудь знает, как я могу решить эту проблему или почему исключение недавно изменилось на класс not найденный? Как уже упоминалось, мне НУЖНЫ эти подписанные библиотеки, и мне НУЖЕН исполняемый jar.
ТАКЖЕ я чертовски уверен, что мой jar настроен правильно. Я воссоздал артефакт, выбрав в качестве основного класса свой основной класс. Я также проверил манифест, и там также указано правильное имя... удаление библиотеки или подписанных jar-файлов и ничего больше не остановит исключение основного класса, который не найден...

Подробнее здесь: https://stackoverflow.com/questions/790 ... ecurity-ex
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»