Сгенерированный файл JAR - произошла ошибка JNI - PullRequest
0 голосов
/ 04 мая 2018

Я использую IntelliJ IDEA для создания артефакта jar из проекта LeanFT.

Был создан артефакт jar, но со следующим сообщением об ошибке:

Произошла ошибка JNI, пожалуйста, проверьте вашу установку и повторите попытку

при попытке выполнить файл JAR напрямую.

Это работает, когда я использую IDE для выполнения. Никаких аргументов или значений параметров не требуется. Я получаю ту же ошибку при создании файла JAR из простого «Hello World».

Трассировка стека:

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 sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
        at sun.security.util.SignatureFileVerifier.process(Unknown Source)
        at java.util.jar.JarVerifier.processEntry(Unknown Source)
        at java.util.jar.JarVerifier.update(Unknown Source)
        at java.util.jar.JarFile.initializeVerifier(Unknown Source)
        at java.util.jar.JarFile.getInputStream(Unknown Source)
        at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source)
        at sun.misc.Resource.cachedInputStream(Unknown Source)
        at sun.misc.Resource.getByteBuffer(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        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)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Я посмотрел на исключение, которое вы получили: Invalid signature file digest for Manifest main attributes.

Используете ли вы подписанные файлы JAR в качестве зависимостей вашего проекта? Если это так, когда вы генерируете jar, содержащий зависимости, попробуйте выполнить его - JVM обнаружит ваш сгенерированный jar как манипуляцию с подписанными jar, которые вы используете.

Вот список вопросов, где встречалось это исключение:

Перейдите по ссылкам выше и найдите точное решение, которое поможет вам. Решение зависит от того, что именно вы делаете, с точки зрения развертывания (особенности того, как вы создаете свой JAR-артефакт).

0 голосов
/ 11 мая 2018

Вероятно, это связано с версией java, установленной на вашем ПК. убедитесь, что она совпадает с версией Java, используемой для компиляции вашего кода.

...