无头模式(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。