指定 Java 本地化文件

E-r*_*ich 4 java localization directory-structure internationalization

我正在尝试使用 ResourceBundle 类为我的应用程序检索特定于语言环境的文本,但遇到了一些错误。

java.lang.ClassCastException: org.project.MyClass cannot be cast to ResourceBundle

java.util.MissingResourceException: Can't find bundle for base name org.project.MyClass, locale en_US
Run Code Online (Sandbox Code Playgroud)

我用来创建 ResourceBundle 的代码如下:

static final ResourceBundle i18ln = ResourceBundle.getBundle("org.project.MyClass", Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)

我已经搜索了大约一个小时关于如何指定资源文件的位置但没有成功。我的项目设置如下:

项目文件夹/
    来源/
        组织/
            项目/
                我的类
    测试/
    库/
    资源/
        图片/
        组织/
            项目/
                MyClass.properties

我的项目结构与 Java ResourceBundle 的结构不兼容吗?有谁知道我怎样才能让它发挥作用?

bur*_*mon 5

MyClass.java 是 ResourceBundle 的某种子类吗?我怀疑它不是,因此 ClassCastException。

如果 MyClass 不是 ResourceBundle 类型的东西,那么尝试将该 MyClass.properties 重命名为 MyResource.properties 之类的其他名称,并将您的 res 目录放在类路径上以便找到您的资源包。确保在使用 ResourceBundle.getResource 时更改资源的名称,如下所示:

static final ResourceBundle i18ln = ResourceBundle.getBundle("org.project.MyResource", Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)