Задать вопрос
@ofonarev

Почему не запускается собранный в .jar файл Java FX проект?

Только начал изучать JavaFX и столкнулся с проблемой. Я делаю свой проект в IntelliJ IDEA, и там он запускается штатно, все функции работают как нужно, но после сборки проекта в .jar файл, при запуске, возникает проблема: приложение просто не запускается, а при попытке его запуска из cmd, он выдает ошибку:

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.ensureInitialization(JarFile.java:1070)
        at java.base/java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(JavaUtilJarAccessImpl.java:42)
        at java.base/jdk.internal.loader.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:841)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:848)
        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)

В интернете ничего полезного не нашёл. Нашёл ответ с похожей проблемой на stackoverflow, но либо я что-то делал неправильно, либо оно мне не помогло. Уже пробовал пересобирать проект и под Gradle, и под Maven, но результата нет.
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Академия Эдюсон
    Java-разработчик: тариф Базовый
    8 месяцев
    Далее
  • Skillbox
    Профессия Java-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
borisdenis
@borisdenis
Ленив и вреден...
Первая же ссылка из поисковика, там же расписано и решение:
Ошибка "Invalid signature file digest for Manifest main attributes" возникает при нарушении целостности цифровой подписи JAR-файла. В корне проблема связана с механизмом безопасности Java, который проверяет цифровые подписи для подтверждения аутентичности и целостности кода.

JAR-файлы часто подписываются цифровыми сертификатами для гарантии того, что код не был изменен после создания. Эта информация хранится в каталоге META-INF, который содержит следующие ключевые файлы:

MANIFEST.MF — содержит метаданные о файлах в архиве
.SF — файлы подписи, содержащие хеш-значения файлов
.DSA, .RSA — файлы с цифровыми подписями
Когда вы пытаетесь запустить JAR-файл, JVM проверяет соответствие между этими файлами. Если обнаруживается несоответствие — появляется ошибка Invalid signature file.

https://sky.pro/wiki/media/reshenie-problemy-inval...
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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