在我的应用程序中,我使用 JavaFX 创建了一个浏览器类型的页面来显示我的帮助。大多数应用程序是使用 JRE 11.0.10 用 Java 编写的。我最初使用的 JavaFX 11.0.2 运行良好。我的客户希望我们通过 Gluon 的订阅服务迁移到 JavaFX 11.0.10。在 JavaFX 11.0.10 中,帮助系统会使整个应用程序崩溃。我已将其范围缩小到 jfxwebkit.dll。它适用于版本 11.0.2,但不适用于 11.0.10。
我使用 NetBeans 12.3 并使用其 JLink 创建客户 JRE;但是,由于某种原因,即使我已经消除了旧版本的 JavaFX,它仍然会放入“一些”JavaFX 11.0.2 文件而不是 11.0.10 文件。当我用 JavaFX 11.0.10 文件手动替换上述文件时,导致崩溃的唯一一个是 jfxwebkit.dll。任何帮助将非常感激。
我无法调试它,因为它可以在 IDE 中运行(不确定它使用的是什么 jfxwebkit)。以下来自“hs_err_pid”文件:
Current thread (0x0000024c5830b000): JavaThread "JavaFX Application Thread" [_thread_in_vm, id=9000, stack(0x000000f7fcd00000,0x000000f7fce00000)]
Stack: [0x000000f7fcd00000,0x000000f7fce00000], sp=0x000000f7fcdfc610, free space=1009k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x3a8eb9]
C [jfxwebkit.dll+0x8b1b0]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.sun.webkit.WebPage.twkCreatePage(Z)J+0 javafx.web
j com.sun.webkit.WebPage.<init>(Lcom/sun/webkit/WebPageClient;Lcom/sun/webkit/UIClient;Lcom/sun/webkit/PolicyClient;Lcom/sun/webkit/InspectorClient;Lcom/sun/webkit/ThemeClient;Z)V+178 javafx.web
j javafx.scene.web.WebEngine.<init>(Ljava/lang/String;Z)V+287 javafx.web
j javafx.scene.web.WebEngine.<init>()V+3 javafx.web
j javafx.scene.web.WebView.<init>()V+60 javafx.web
j com.austinnc.utilsjfx.CBrowser.<init>(Ljava/lang/String;)V+9 com.anc.UtilsJFX
j com.austinnc.utilsjfx.CHelpDisplayJFX.displayHelp(Ljava/lang/String;)V+12 com.anc.UtilsJFX
j com.austinnc.optfilegen.COptionFileGenFrame$CHelpEH$1.run()V+90 com.anc.OptionFileGenerator
j com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Ljava/lang/Runnable;)Ljava/lang/Void;+1 javafx.graphics
j com.sun.javafx.application.PlatformImpl$$Lambda$58.run()Ljava/lang/Object;+4 javafx.graphics
v ~StubRoutines::call_stub
J 1183 java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; java.base@11.0.10 (0 bytes) @ 0x0000024c487cb9a6 [0x0000024c487cb940+0x0000000000000066]
j com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Ljava/lang/Runnable;Ljava/security/AccessControlContext;)V+7 javafx.graphics
j com.sun.javafx.application.PlatformImpl$$Lambda$57.run()V+8 javafx.graphics
j com.sun.glass.ui.InvokeLaterDispatcher$Future.run()V+4 javafx.graphics
v ~StubRoutines::call_stub
j com.sun.glass.ui.win.WinApplication._runLoop(Ljava/lang/Runnable;)V+0 javafx.graphics
j com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(ILjava/lang/Runnable;)V+8 javafx.graphics
j com.sun.glass.ui.win.WinApplication$$Lambda$46.run()V+12 javafx.graphics
j java.lang.Thread.run()V+11 java.base@11.0.10
v ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000