猿问

jlink 图像中的区域设置 getDisplayLanguage 损坏

这里是 SSCCE:


public class Main {

    public static void main(String[] args) {

        Locale item = Locale.FRANCE;

        System.out.println("Locale: "+item+" displayed: "+item.getDisplayLanguage(Locale.GERMANY));

    }

}

编译运行时,正确显示


Locale: fr_FR displayed: Französisch

但是,如果我现在通过 jlink 创建一个自定义运行时图像并使用它运行它,我会得到:


Locale: fr_FR displayed: French

无论使用哪种语言环境,它总是退回到看起来的英语语言环境。也许我需要一个额外的模块?运行时图像生成如下:


jlink --module-path "..." --add-modules=java.desktop,java.logging,javafx.controls,javafx.graphics,javafx.fxml,javafx.base,javafx.media --output image

我的 JDK 版本:


$ java --version

java 11.0.2 2019-01-15 LTS

Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)

Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)


慕后森
浏览 79回答 1
1回答

忽然笑

如此处所述,java.base 模块仅包含英语语言环境。要构建包含其他语言环境的 Jlink 映像,必须添加 jdk.localedata 模块。
随时随地看视频慕课网APP

相关分类

Java
我要回答