尝试将 .properties 文件加载到资源包中时出现错误 "Can't find bundle for base name"

Trying to load a .properties file into Resource bundle getting error "Can't find bundle for base name"

我正在尝试将 .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)。

有人知道为什么吗?

加载资源包时,基本名称扩展中没有 .properties。此外,删除基本名称的前导 /

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

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

// 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);

更多信息请参考本教程:Customizing Resource Bundle Loading