JXBrowser java.ipc.external=真 VM 参数

JXBrowser java.ipc.external=true VM argument

我想知道这个参数到底有什么用?并了解此论点可能导致的潜在缺点

我尝试在 Internet 上搜索此 VM 参数,但找不到任何内容。

默认情况下,在 macOS 上,JxBrowser 在 Java 进程中初始化 Chromium 引擎。当 Chromium window 嵌入到 Java 框架时,需要支持重量级渲染模式。在 macOS 中,来自一个进程 (Chromium) 的本机 window 无法嵌入来自另一进程 (Java) 的本机 window。

在 Java 进程中初始化 Chromium 可能会导致 macOS 出现死锁问题。这是因为 SWT、JavaFX 和 Chromium 在 Java 进程中共享相同的 Cocoa 本机线程。

java.ipc.external=true VM 选项告诉 JxBrowser 在单独的本机进程中初始化和 运行 Chromium 引擎。在这种情况下 Java 和 Chromium 不共享 Cocoa 本机线程。它可以解决 macOS 平台上的死锁问题。

如您所见,在这种情况下无法使用重量级渲染模式。因此,在这种情况下仅使用轻量级渲染模式。这是使用此 VM 选项的唯一缺点。