Chromium

本指南将介绍如何使用 JxBrowser 使用的 Chromium 构建。

您无需在目标环境中安装 Chromium 或 Google Chrome 即可使用 JxBrowser。 JxBrowser 使用并部署了自己的 Chromium 构建。

二进制文件

每个受支持平台的 Chromium 二进制文件都位于相应的 JxBrowser JARs 中。

  • jxbrowser-win32-7.38.0.jar – 适用于 Windows 32 位的 Chromium 二进制文件。
  • jxbrowser-win64-7.38.0.jar – 适用于 Windows 64 位的 Chromium 二进制文件。
  • jxbrowser-mac-7.38.0.jar – 适用于 macOS 的 Chromium 二进制文件。
  • jxbrowser-mac-arm-7.38.0.jar – 适用于 macOS Apple Silicon (ARM) 的 Chromium 二进制文件。
  • jxbrowser-linux64-7.38.0.jar – 适用于 Linux 64 位的 Chromium 二进制文件。
  • jxbrowser-linux64-arm-7.38.0.jar – 适用于 Linux ARM 64 位的 Chromium 二进制文件。

要使用 Chromium,您需要提取其二进制文件。

提取

JxBrowser 在第一次启动时从相应的 JAR 中提取目标平台的 Chromium 二进制文件。

在 macOS 和 Linux 上,二进制文件被提取到用户的临时目录中。

在Windows中,它们被放置在 AppData\Local\JxBrowser 目录中。

JxBrowser 检查目录是否包含所需的 Chromium 文件。 如果未找到,它会从应用程序类路径中包含的 JAR 文件中提取二进制文件。

您可以自定义目录的默认路径,二进制文件应该被提取到的位置,或者手动提取二进制文件并告诉库它们所在的位置。

位置

下面是如何指定提取 Chromium 二进制文件的目录路径:

  1. 使用 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"
    
  2. 构建 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,以及工具栏和上下文菜单等元素。

Go Top