Фатальная ошибка JRE после сжатия с помощью Proguard - PullRequest
0 голосов
/ 25 ноября 2018

Я связываю JRE с моим приложением JavaFX на Mac, используя gradle-macappbundle .Я пытаюсь уменьшить размер JRE, поэтому мне не нужно включать все ~ 200 МБ.Я следовал инструкциям в Java8 README , чтобы удалить некоторые дополнительные компоненты.

После того, как плагин macappbundle создает .app, я хочу запустить Proguard на JRE (я используюGradle плагин для него), чтобы удалить еще больше неиспользуемых классов.

Мои текущие правила Proguard:

task shrinkJRE(type: ProGuardTask, dependsOn: 'createApp') {
    injars "build/macApp/"
    outjars "build/libs/pro/"

    keep "class java.** { *; }"

    ignorewarnings()
    dontobfuscate()
    dontoptimize()
}

Это производит JRE около 45 МБ.

Но после выполнения chmod +x на исполняемом файле JavaAppLauncher и при запуске он показывает эту ошибку:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000010c6025e4, pid=86901, tid=0x0000000000002303
#
# JRE version:  (8.0_181-b13) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.dylib+0x5825e4]  universe_post_init()+0x6a9
#
# Core dump written. Default location: /cores/core or core.86901
#
# An error report file with more information is saved as:
# /Users/rishiraja/hs_err_pid86901.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Abort trap: 6 (core dumped)

Может ли кто-нибудь помочь мне найти причину этой ошибки?

Я предполагаю, что япропущены некоторые обязательные классы для JRE, так какие же классы мне может понадобиться "сохранить"?

...