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

Jlink打包应用后NumberFormat指定意大利格式失效如何修复

问题原因

jlink 构建自定义JRE镜像时默认仅包含根地区(美国英语)的本地化资源,意大利等非默认地区的数字格式化规则没有被打包进最终镜像,运行时找不到对应地区资源就会自动回退到US格式,导致打包后格式化规则失效。

解决方案

步骤1:添加地区数据模块依赖

在你的项目module-info.java中引入jdk.localedata模块:

module com.example.demo4 {
    requires javafx.controls;
    requires javafx.fxml;
    requires jdk.localedata; // 新增这行,引入地区数据模块

    opens com.example.demo4 to javafx.fxml;
    exports com.example.demo4;
}

步骤2:修改jlink打包配置

在build.gradle的jlink配置项中,新增参数指定要打包的地区:

jlink {
    jpackage{
        imageOptions = ["--icon", "C:/demo4/src/main/resources/com/example/demo4/Icon.ico"]
    }
    // 新增--add-modules jdk.localedata 和 --include-locales参数,指定要包含的意大利地区
    options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages',
               '--add-modules', 'jdk.localedata',
               '--include-locales', 'it']
    launcher {
        name = 'Karrty'
    }
}

如果后续需要支持多个地区,直接在--include-locales参数后用逗号分隔添加即可,例如'it,fr,zh-CN'。

修改完成后重新执行jlink打包,生成的exe运行时就会正确显示意大利格式的数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:03