
如果您的团队目前使用 JxBrowser,需要迁移到 Fuzio,这篇指南将帮助您顺利完成迁移。
由于 Fuzio 与 JxBrowser 保持了一致的 API 签名和功能体系,业务逻辑代码无需修改。整个迁移的核心操作可以归纳为三步:
com.teamdev.jxbrowser →
tech.fuzio)对于大多数项目,整个迁移过程可以在 30 分钟内 完成。以下是每个步骤的详细说明。
Fuzio 使用自建 Maven 仓库分发。
// ============ 迁移前(JxBrowser) ============
plugins {
id("com.teamdev.jxbrowser") version "2.0.0" // 移除此插件
}
dependencies {
implementation(jxbrowser.currentPlatform)
implementation(jxbrowser.swing)
}
// ============ 迁移后(Fuzio) ============
repositories {
mavenCentral()
maven("https://jiku.mycloudrepo.io/public/repositories/releases")
}
dependencies {
implementation("tech.fuzio:fuzio-cross-platform:${fuzioVersion}")
implementation("tech.fuzio:fuzio-swing:${fuzioVersion}")
}
完整的 Gradle 项目配置请参阅 Fuzio Gradle 配置指南。
<!-- ============ 迁移前(JxBrowser) ============ -->
<repositories>
<repository>
<id>jxbrowser</id>
<url>https://europe-maven.pkg.dev/jxbrowser/releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.teamdev.jxbrowser</groupId>
<artifactId>jxbrowser-cross-platform</artifactId>
<version>${jxbrowserVersion}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.teamdev.jxbrowser</groupId>
<artifactId>jxbrowser-swing</artifactId>
<version>${jxbrowserVersion}</version>
</dependency>
</dependencies>
<!-- ============ 迁移后(Fuzio) ============ -->
<repositories>
<repository>
<id>fuzio</id>
<url>https://jiku.mycloudrepo.io/public/repositories/releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>tech.fuzio</groupId>
<artifactId>fuzio-cross-platform</artifactId>
<version>${fuzioVersion}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>tech.fuzio</groupId>
<artifactId>fuzio-swing</artifactId>
<version>${fuzioVersion}</version>
</dependency>
</dependencies>
完整的 Maven 项目配置请参阅 Fuzio Maven 配置指南。
如果您没有使用 cross-platform 依赖,而是直接引用特定平台的 Chromium JAR,以下是对照表:
| JxBrowser | Fuzio | 平台 |
|---|---|---|
jxbrowser-win32 |
fuzio-win32 |
Windows 32-bit |
jxbrowser-win64 |
fuzio-win64 |
Windows 64-bit |
jxbrowser-win64-arm |
fuzio-win64-arm |
Windows ARM 64-bit |
jxbrowser-mac |
fuzio-mac |
macOS x64 |
jxbrowser-mac-arm |
fuzio-mac-arm |
macOS Apple Silicon |
jxbrowser-linux64 |
fuzio-linux64 |
Linux x64 |
jxbrowser-linux64-arm |
fuzio-linux64-arm |
Linux ARM 64-bit |
| — |
fuzio-linux64-loong |
Linux LoongArch 64-bit |
Fuzio 额外提供了
fuzio-linux64-loong(龙芯 LoongArch 架构),这是 JxBrowser 不支持的平台。如果您的应用需要运行在龙芯硬件上,添加此依赖即可。
在整个项目中执行全局查找替换:
com.teamdev.jxbrowser → tech.fuzio
例如:
// 迁移前 import com.teamdev.jxbrowser.engine.Engine; // 迁移后 import tech.fuzio.engine.Engine;
替换后,所有类名、方法签名、接口均保持不变 - 您的业务逻辑代码无需任何修改。
// 迁移前(JxBrowser)
System.setProperty("jxbrowser.license.key", "your_license_key");
// 迁移后(Fuzio)
System.setProperty("fuzio.license.key", "your_license_key");
# 迁移前 -Djxbrowser.license.key=your_license_key # 迁移后 -Dfuzio.license.key=your_license_key
Java - 代码无需修改,
licenseKey("...") 方法签名一致。
Kotlin - 需要将
JxBrowserLicense 替换为
FuzioLicense:
// 迁移前(JxBrowser)
val engine = Engine(RenderingMode.HARDWARE_ACCELERATED) {
license = JxBrowserLicense("your_license_key")
}
// 迁移后(Fuzio)
val engine = Engine(RenderingMode.HARDWARE_ACCELERATED) {
license = FuzioLicense("your_license_key")
}
安全建议: 避免通过
-Dfuzio.license.key命令行参数设置密钥,因为其值可能会暴露在进程监视器、测试报告或崩溃转储中。推荐在代码中通过System.setProperty()或 Engine 选项设置。
如果您自定义了 Chromium 二进制文件的提取目录,需要更新系统属性名称:
// 迁移前(JxBrowser)
System.setProperty("jxbrowser.chromium.dir", "/path/to/chromium");
// 迁移后(Fuzio)
System.setProperty("fuzio.chromium.dir", "/path/to/chromium");
或使用 JVM 启动参数:
# 迁移前 -Djxbrowser.chromium.dir="/path/to/chromium" # 迁移后 -Dfuzio.chromium.dir="/path/to/chromium"
通过
EngineOptions 设置的代码无需修改。
如果您没有自定义 Chromium 目录,需要注意默认路径的变化:
| 平台 | JxBrowser 默认路径 | Fuzio 默认路径 |
|---|---|---|
| Windows |
AppData\Local\JxBrowser |
AppData\Local\Fuzio |
| macOS | 用户临时目录 | 用户临时目录 |
| Linux | 用户临时目录 | 用户临时目录 |
如果您配置了 JxBrowser 的日志记录,需要更新属性名称:
// 迁移前(JxBrowser)
System.setProperty("jxbrowser.logging.level", "DEBUG");
System.setProperty("jxbrowser.logging.file", "jxbrowser.log");
// 迁移后(Fuzio)
System.setProperty("fuzio.logging.level", "DEBUG");
System.setProperty("fuzio.logging.file", "fuzio.log");
或使用 JVM 启动参数:
-Dfuzio.logging.level=DEBUG -Dfuzio.logging.file=fuzio.log
通过 API 方式配置日志的代码保持不变。
以下是常见的系统属性对照。如果您在 JxBrowser 中使用了对应的属性,请确保更新前缀:
| Fuzio 系统属性 | 用途 | 对应 JxBrowser 属性 |
|---|---|---|
fuzio.license.key |
许可证密钥 |
jxbrowser.license.key |
fuzio.chromium.dir |
Chromium 二进制文件目录 |
jxbrowser.chromium.dir |
fuzio.logging.level |
日志级别 |
jxbrowser.logging.level |
fuzio.logging.file |
日志文件路径 |
jxbrowser.logging.file |
fuzio.crash.dump.dir |
崩溃转储目录 |
jxbrowser.crash.dump.dir |
fuzio.native.input.enabled |
启用原生输入支持 |
jxbrowser.native.input.enabled |
快捷操作: 在项目中全局搜索
jxbrowser.(注意末尾的点),将所有系统属性前缀替换为fuzio.。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049619/viewspace-3116572/ ,如需转载,请注明出处,否则将追究法律责任。