首页 > 解决方案 > 尝试将 .properties 文件加载到资源包中,出现错误“找不到基本名称的包”

问题描述

我正在尝试将.properties文件加载到我的ResourceBundle

public class Main extends Application {

    @Override
    public void start(Stage stage) throws Exception{

        ResourceBundle bundle = ResourceBundle.getBundle("/sample/resources/language_en.properties");

        FXMLLoader loader = new FXMLLoader(getClass().getResource("/sample/layout/test_form.fxml"), bundle);
    }
}

但我得到了错误:

Caused by: java.util.MissingResourceException: Can't find bundle for base name /sample/resources/language_en.properties, locale en_US

在此处输入图像描述

想不通为什么。我已经多次检查路径/sample/resources/language_en.properties是否存在拼写错误。我也尝试过重建项目(使用 IntelliJ)。

有谁知道为什么?

标签: javajavafx

解决方案


该方法ResourceBundle.getBundle()采用资源包的基本名称,一个完全限定的类名(由类文档指定)。你可以像这样加载你的包:

// this will load the base bundle: sample/resources/language.properties
ResourceBundle bundle = ResourceBundle.getBundle("sample.resources.language");

要使用英文ResourceBundle,您可以指定Locale

// this will load sample/resources/language_en.properties
ResourceBundle bundle = ResourceBundle.getBundle("sample.resources.language", Locale.ENGLISH);

请参阅本教程以获取更多信息:自定义资源包加载


推荐阅读