编译后的JavaFX应用程序立即无提示崩溃求助
JavaFX原生编译后程序崩溃(错误码-1073741819)排查方案
错误码**-1073741819**对应Windows平台的STATUS_ACCESS_VIOLATION,即内存访问违规,说明程序尝试访问了未授权的内存区域。结合你提供的日志,以下是具体排查步骤:
1. 验证rungagent配置完整性
- 确认运行
rungagent时,完整覆盖了应用的所有功能场景(包括UI交互、后台逻辑、第三方库调用等),agent仅会记录实际执行到的代码所需的反射、资源、JNI配置。 - 检查生成的
reflect-config.json、resource-config.json、jni-config.json文件,确保包含JavaFX隐式加载的组件(如自定义控件、FXML资源)、Kotlin内联函数或动态反射调用的类/方法。
2. 启用调试日志定位崩溃点
- 编译时添加参数
-H:GenerateDebugInfo=1生成调试信息,之后用Visual Studio调试器或WinDbg附加到崩溃进程,查看具体的崩溃堆栈。 - 运行原生程序时添加
-H:Log=+TraceClassInitialization参数,输出类初始化日志,定位崩溃发生在哪个类初始化阶段。
3. 检查版本兼容性
- 确保JavaFX版本与GraalVM版本匹配:你当前使用GraalVM 22.1.0.1(Java 17),需搭配JavaFX 17.x系列版本(建议17.0.6及以上),版本不兼容可能导致底层JNI调用错误。
4. 排查第三方依赖
- 逐一移除非核心第三方库,重新编译运行,定位是否由某款不支持GraalVM原生镜像的库导致崩溃。
- 对于使用JNI或动态反射的第三方库,手动补充对应的GraalVM配置规则。
5. 检查启动逻辑合规性
- 确保JavaFX启动流程符合规范:通过
Application.launch()或Kotlin的Application.start()启动,避免在FX主线程外初始化UI组件。 - 检查启动阶段是否存在未初始化的静态变量、提前执行的本地方法调用。
附用户提供的日志信息
nativerun输出日志
[Mo. Dez. 18 14:50:31 MEZ 2023][INFORMATION] [SUB] Dez. 18, 2023 2:50:31 PM com.sun.javafx.application.PlatformImpl startup [Mo. Dez. 18 14:50:31 MEZ 2023][INFORMATION] [SUB] WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @6b71769e' [Mo. Dez. 18 14:50:34 MEZ 2023][SCHWERWIEGEND] Process run until end failed with result: -1073741819 Check the log files under C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\gvm\log And please check https://docs.gluonhq.com/ for more information. [Mo. Dez. 18 14:50:34 MEZ 2023][INFORMATION] Logging process [run until end] to file: C:\Users\...\jfx-updater\target\gluonfx\log\process-run until end-1702907434372.log
详细崩溃日志
Process ======= run until end Command Line ============ C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\updater.exe Output ====== Dez. 18, 2023 2:50:31 PM com.sun.javafx.application.PlatformImpl startup WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @6b71769e' Result ====== result: -1073741819
编译日志
[Mo. Dez. 18 14:02:18 MEZ 2023][INFORMATION] [SUB] Warning: Ignoring server-mode native-image argument --no-server. [Mo. Dez. 18 14:02:21 MEZ 2023][INFORMATION] [SUB] ======================================================================================================================== [Mo. Dez. 18 14:02:21 MEZ 2023][INFORMATION] [SUB] GraalVM Native Image: Generating 'ch.cnlab.update.mainkt' (shared library)... [Mo. Dez. 18 14:02:21 MEZ 2023][INFORMATION] [SUB] ======================================================================================================================== [Mo. Dez. 18 14:02:23 MEZ 2023][INFORMATION] [SUB] [1/7] Initializing... (4,1s @ 0,22GB) [Mo. Dez. 18 14:02:23 MEZ 2023][INFORMATION] [SUB] Version info: 'GraalVM 22.1.0.1 Java 17 CE' [Mo. Dez. 18 14:02:23 MEZ 2023][INFORMATION] [SUB] C compiler: cl.exe (microsoft, x64, 19.38.33133) [Mo. Dez. 18 14:02:23 MEZ 2023][INFORMATION] [SUB] Garbage collector: Serial GC [Mo. Dez. 18 14:02:23 MEZ 2023][INFORMATION] [SUB] 1 user-provided feature(s) [Mo. Dez. 18 14:02:23 MEZ 2023][INFORMATION] [SUB] - com.oracle.svm.polyglot.kotlin.KotlinFeature [Mo. Dez. 18 14:02:48 MEZ 2023][INFORMATION] [SUB] [2/7] Performing analysis... [*************] (24,2s @ 4,65GB) [Mo. Dez. 18 14:02:48 MEZ 2023][INFORMATION] [SUB] 14.135 (91,55%) of 15.440 classes reachable [Mo. Dez. 18 14:02:48 MEZ 2023][INFORMATION] [SUB] 31.120 (72,74%) of 42.781 fields reachable [Mo. Dez. 18 14:02:48 MEZ 2023][INFORMATION] [SUB] 72.156 (63,59%) of 113.465 methods reachable [Mo. Dez. 18 14:02:48 MEZ 2023][INFORMATION] [SUB] 721 classes, 6.078 fields, and 3.234 methods registered for reflection [Mo. Dez. 18 14:02:48 MEZ 2023][INFORMATION] [SUB] 138 classes, 158 fields, and 208 methods registered for JNI access [Mo. Dez. 18 14:02:49 MEZ 2023][INFORMATION] [SUB] [3/7] Building universe... (1,8s @ 2,39GB) [Mo. Dez. 18 14:02:50 MEZ 2023][INFORMATION] [SUB] [4/7] Parsing methods... [*] (0,7s @ 3,87GB) [Mo. Dez. 18 14:02:52 MEZ 2023][INFORMATION] [SUB] [5/7] Inlining methods... [****] (1,2s @ 5,95GB) [Mo. Dez. 18 14:03:01 MEZ 2023][INFORMATION] [SUB] [6/7] Compiling methods... [***] (9,7s @ 4,16GB) [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] ------------------------------------------------------------------------------------------------------------------------ [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] 4,8s (9,6% of total time) in 41 GCs | Peak RSS: 9,74GB | CPU load: 5,27 [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] ------------------------------------------------------------------------------------------------------------------------ [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] Produced artifacts: [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\gvm\updater\graal_isolate.h (header) [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\gvm\updater\ch.cnlab.update.mainkt.h (header) [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\gvm\updater\graal_isolate_dynamic.h (header) [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\gvm\updater\ch.cnlab.update.mainkt_dynamic.h (header) [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] C:\Users\...\jfx-updater\target\gluonfx\x86_64-windows\gvm\updater\ch.cnlab.update.mainkt.build_artifacts.txt [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] ======================================================================================================================== [Mo. Dez. 18 14:03:08 MEZ 2023][INFORMATION] [SUB] Finished generating 'ch.cnlab.update.mainkt' in 49,1s. [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] Result for compile: 0 [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] Logging process [compile] to file: C:\Users\...\jfx-updater\target\gluonfx\log\process-compile-1702904589886.log [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] PB Command for check version: C:\SDK\java\gluon\graalvm-svm-java17-windows-gluon-22.1.0.1-Final\bin\java -version [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] Start process check version... [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] [SUB] openjdk version "17.0.3" 2022-04-19 [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] [SUB] OpenJDK Runtime Environment GraalVM 22.1.0.1 (build 17.0.3+7-jvmci-22.1-b06) [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN] [SUB] OpenJDK 64-Bit Server VM GraalVM 22.1.0.1 (build 17.0.3+7-jvmci-22.1-b06, mixed mode, sharing) [Mo. Dez. 18 14:03:09 MEZ 2023][FEIN]
内容的提问来源于stack exchange,提问作者dzim
相关产品推荐
相关产品推荐

