jlink Image中的语言环境getDisplayLanguage损坏

时间:2019-05-26 12:48:15

标签: java locale jlink

这里是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)

1 个答案:

答案 0 :(得分:0)

here所述,java.base模块仅包含英语语言环境。要构建一个也包含其他语言环境的Jlink映像,必须添加jdk.localedata模块。