无头模式(Headless mode)

在无头 Linux 环境中启动 X 服务器

JxBrowser 库可以在无头 Linux 环境中使用,前提是 X 服务器正在运行。

以下是启动 X 服务器的方法:

1. 安装 Xvfb 服务器

在您的无头 Linux 环境中,例如 Ubuntu Server 16.04.2 LTS:

sudo apt-get install xvfb

2. 运行您的 Java 应用程序

通过启动独立的 X 服务器:

Xvfb :1 -screen 0 800x600x24+32 &
export DISPLAY=:1
java -jar application.jar

或者使用 xvfb-run 命令:

xvfb-run --server-args="-screen 0 800x600x24+32" java -jar application.jar

必须指定屏幕尺寸和颜色深度。

“无头”标志是什么?

Chromium 58 及更高版本支持 --headless 命令行标志,该标志仅适用于 Linux。

该标志允许在无头环境中运行 Chromium,而无需启动 X 服务器。这个标志是为当您只需要在无头环境中运行 Chromium、加载一些 URL,并通过 --remote-debugging-port 开关使用 DevTools 附加到加载的网页时设计的。例如:

chrome --headless --remote-debugging-port=9222 https://chromium.org

在这种情况下,您可以在网页浏览器应用程序中加载 localhost:9222 网页,并使用 DevTools 与加载的网页进行交互。

如您所见,--headless 命令行标志是为当您需要加载单个网页并通过 DevTools 与其交互时设计的。我们检查了 Chromium 的源代码,发现此标志强制 Chromium 使用一个单独的、受限的 Chromium API 版本,该版本不支持 JxBrowser 中使用的大部分(约 80-90%)功能。

这意味着此标志禁用了 JxBrowser 的大部分功能,例如通过 URL、HTML 加载不同的网页、向后和向前导航、执行 JavaScript 等。

这就是为什么 JxBrowser 不支持此标志的原因,我们建议您在无头 Linux 环境中启动 X 服务器以便使用 JxBrowser。

Go Top