You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GluonFX构建Windows程序时ICU俄文资源包找不到求助

解决GluonFX构建后运行ICU资源包缺失问题

问题根源

GraalVM的资源包扫描逻辑会将完整Locale(如ru_RU)简化为语言代码ru,但ICU库的资源包是按完整Locale命名的com.ibm.icu.impl.data.icudt65b.ru_RU,导致构建时扫描不到对应资源,最终运行时抛出缺失异常。你之前尝试的配置错误地使用了简化语言代码和文件后缀,导致匹配失败。

解决方案

方案1:在pom.xml中指定完整资源包名称

修改gluonfx-maven-plugin的配置,在<bundlesList>中添加完整的ICU资源包名称(不带.res后缀):

<plugin>
    <groupId>com.gluonhq</groupId>
    <artifactId>gluonfx-maven-plugin</artifactId>
    <version>1.0.19</version>
    <configuration>
        <!-- 保留你的其他配置项 -->
        <bundlesList>
            <bundle>com.ibm.icu.impl.data.icudt65b.ru_RU</bundle>
        </bundlesList>
    </configuration>
</plugin>

执行mvn clean gluonfx:build重新构建即可。

方案2:通过资源包配置文件指定

修改src/main/resources/META-INF/substrate/config/resourcebundles文件,写入完整资源包名称:

com.ibm.icu.impl.data.icudt65b.ru_RU

同样重新构建程序。

方案3:强制保留所有ICU资源包(适合快速验证)

如果不需要严格控制资源体积,可直接配置保留ICU的所有data资源:

<plugin>
    <groupId>com.gluonhq</groupId>
    <artifactId>gluonfx-maven-plugin</artifactId>
    <version>1.0.19</version>
    <configuration>
        <!-- 保留你的其他配置项 -->
        <resources>
            <resource>
                <pattern>com/ibm/icu/impl/data/icudt65b/*.res</pattern>
            </resource>
        </resources>
    </configuration>
</plugin>

为什么之前的配置失败

  • 你添加的com/ibm/icu/impl/data/icudt65b/ru.res路径错误,实际存在的资源是ru_RU.res,且<bundlesList>中应填写资源包的逻辑名称(com.ibm.icu.impl.data.icudt65b.ru_RU),而非文件路径。
  • GluonFX自动扫描时会简化Locale名称,需要手动指定完整Locale的资源包来覆盖这一逻辑。

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:10:17