Chromium
本指南将介绍如何使用 JxBrowser 使用的 Chromium 构建。
您无需在目标环境中安装 Chromium 或 Google Chrome 即可使用 JxBrowser。 JxBrowser 使用并部署了自己的 Chromium 构建。
二进制文件
每个受支持平台的 Chromium 二进制文件都位于相应的 JxBrowser JARs 中。
jxbrowser-win32-7.35.1.jar
– 适用于 Windows 32 位的 Chromium 二进制文件。jxbrowser-win64-7.35.1.jar
– 适用于 Windows 64 位的 Chromium 二进制文件。jxbrowser-mac-7.35.1.jar
– 适用于 macOS 的 Chromium 二进制文件。jxbrowser-mac-arm-7.35.1.jar
– 适用于 macOS Apple Silicon (ARM) 的 Chromium 二进制文件。jxbrowser-linux64-7.35.1.jar
– 适用于 Linux 64 位的 Chromium 二进制文件。jxbrowser-linux64-arm-7.35.1.jar
– 适用于 Linux ARM 64 位的 Chromium 二进制文件。
要使用 Chromium,您需要提取其二进制文件。
提取
JxBrowser 在第一次启动时从相应的 JAR 中提取目标平台的 Chromium 二进制文件。
在 macOS 和 Linux 上,二进制文件被提取到用户的临时目录中。
在Windows中,它们被放置在 AppData\Local\JxBrowser
目录中。
JxBrowser 检查目录是否包含所需的 Chromium 文件。 如果未找到,它会从应用程序类路径中包含的 JAR 文件中提取二进制文件。
您可以自定义目录的默认路径,二进制文件应该被提取到的位置,或者手动提取二进制文件并告诉库它们所在的位置。
位置
下面是如何指定提取 Chromium 二进制文件的目录路径:
-
使用
jxbrowser.chromium.dir
系统属性。它可以通过
System.setProperty()
方法来完成:System.setProperty("jxbrowser.chromium.dir", "Users/Me/.jxbrowser");
System.setProperty("jxbrowser.chromium.dir", "Users/Me/.jxbrowser")
或者通过 JVM 参数:
-Djxbrowser.chromium.dir="Users/Me/.jxbrowser"
-
构建
Engine
时通过EngineOptions
:Engine engine = Engine.newInstance(EngineOptions.newBuilder(...) .chromiumDir("Users/Me/.jxbrowser") .build());
val engine = Engine.newInstance(EngineOptions.newBuilder(...) .chromiumDir("Users/Me/.jxbrowser") .build())
目录路径可以是相对路径也可以是绝对路径。
该目录不能位于网络驱动器上。
如果目录中已经有了所需的 Chromium 二进制文件,库将不执行提取。
如果目录被损坏并且某些 Chromium 文件丢失,JxBrowser 将提取二进制文件并覆盖现有文件。
验证
每个 JxBrowser 版本只与使用该版本部署的 Chromium 二进制文件兼容。 JxBrowser 7.29 的 Chromium 二进制文件不能与其他 JxBrowser 版本一起使用,例如 7.29.1。
为确保 Chromium 二进制文件与当前的 JxBrowser 版本兼容,库会验证二进制文件。
沙盒
Windows
JxBrowser 支持 Windows 上的 Chromium 沙盒。 沙盒默认启用,但您可以通过适当的 Engine
选项禁用它:
Engine engine = Engine.newInstance(EngineOptions.newBuilder(...)
.disableSandbox()
.build());
val engine = Engine.newInstance(EngineOptions.newBuilder(...)
.disableSandbox()
.build())
Linux and macOS
Currently Sandbox is supported on Windows platform only.
Chrome 扩展程序
JxBrowser 不支持设计用于 Chrome 应用程序的扩展。
该库仅与呈现网页内容的网页浏览器控件集成。 因此,它没有集成扩展所需的 Chrome GUI,以及工具栏和上下文菜单等元素。