我们的一位用户在Mac OS X 10.12.6上报告了一致的JxBrowser崩溃
他们正在使用JxBrowser v6.17,Oracle jre1.8.0_152和最新的webdrivers。
完整的崩溃日志可在此处找到:https://github.com/zaproxy/zaproxy/issues/4126
有什么建议吗?
答案 0 :(得分:3)
JxBrowser有两种渲染模式:轻量级和重量级。在重量级渲染模式中,我们将一个本机窗口嵌入到您的Java应用程序窗口中,并配置Chromium引擎以使用GPU将内容渲染到此本机窗口中。为了在Mac上嵌入本机窗口,我们必须在Java进程中初始化Chromium引擎。 JavaFX WebView基于WebKit引擎,该引擎也在Java进程中初始化。当您在同一个应用程序中混合使用JxBrowser和JavaFX WebView时,通常会发生崩溃。我们不建议在重量级模式下使用JxBrowser,在Mac上使用相同应用程序中的JavaFX WebView。
如果您必须同时使用JxBrowser和JavaFX WebView,我建议您在JxBrowser中切换到轻量级渲染模式。为此,您需要使用以下VM参数启动JxBrowser:
-Djxbrowser.ipc.external=true
这将强制JxBrowser在单独的本机进程中初始化Chromium,这将允许您避免JxBrowser和WebView之间的冲突。在这种情况下,无法在重量级渲染模式下使用JxBrowser。
如果您需要在同一应用程序中使用JavaFX WebView的重量级模式下使用JxBrowser,则应确保在创建任何WebView实例之前调用BrowserCore.initialize()
方法。