无法找到bundle java.util.PropertyResourceBundle,sc.title

时间:2018-03-23 11:52:37

标签: java

我使用Eclipse Oxygen.2 Release(4.7.2)并尝试开发一种笔&纸质角色创建程序,作为学习使用xml和属性等不同文件的练习。

我的 ResBundle.properties -file如下所示:

cc.male=male
cc.female=female
cc.askForGender=Choose a gender for your hero

sc.btnStart=Start\n Creation
sc.title=Creation of a Setting
sc.creationProps=Creation Properties
sc.creationPropsComment=Properties for character creation

它要长得多,并且有60行代码与所示部分类似。我的主JFrame使用如下所示的文件:

JMenuItem mntmNewchar = new JMenuItem(lang.getString("gui.char.new"));

我用于创建新角色/世界的第二个JFrame具有相同的代码。例如:

setTitle(lang.getString("sc.title"));

我仍然得到例外:

  

无法找到包java.util.PropertyResourceBundle,key sc.title

的资源

我的主要方法:

try {
    lang = ResourceBundle.getBundle("ResBundle", new Locale("en"));
} catch(MissingResourceException e) {
    e.printStackTrace();
}
mainFrame = new MainFrame();
mainFrame.setVisible(true);

我在这个问题中找到的答案最多,处理相同的例外情况。但是他们只告诉我如何将属性文件移动到我的源foulder / class路径文件夹中。我之前有过Exception并移动了文件,所以现在它位于 lib / lang 文件夹中,我作为源文件夹(使用Eclipse)添加到我的构建路径中。之后,我会继续编程,直到我收到上述的Exception消息。

当我只使用另一个密钥进行测试时,它可以工作。我试图在属性文件和程序中重命名密钥,但仍然会发生异常。

最奇怪的是,它已经起作用了。我可以通过一个按钮和相同的键打开第二个JFrame!这意味着

  

" sc.title"

和我在第二个JFrame中使用的其他键,没有抛出异常。在对其他摆动组件进行一些调整之后,由于异常,我无法启动我的程序。

我发现了类似的问题:

java.util.missingresourceexception: Can't find resource for bundle java.util.ResourceBundle, key

我在第一行插入换行符,但没有任何改变。我也找到了一个问题,这个问题是在6个月前提出的,但仍然没有得到答案。仍然是我遇到的问题:

Java - ResourceBundle Can't find resource for bundle java.util.PropertyResourceBundle

我希望有人可以帮助我或描述,为什么JVM无法找到密钥。我认为我有属性文件的正确结构,我不知道,为什么它不工作。

非常感谢能帮助我一点或多少的人。

编辑(回答@arthur):

我当前的文件夹结构 - 根文件夹:

fodler tree

LIB /郎/ ResBundle.properties

Eclipse告诉我,我将文件夹包括在内如下

  • 我的java项目的Eclipse属性。标签" Java构建路径"显示

Eclipse properties for my java project. The tab "Java Build Path" ist shown

1 个答案:

答案 0 :(得分:1)

我发现了自己的错误而且非常抱歉我发布了一个问题,这个问题有一个简单的解决方案。我检查了使用资源包密钥的行并没有工作一百次,但刚才我注意到,我对括号感到困惑。它应该是

  

String str = ResourceBundleVariable.getString(“key”);

我犯了错误,我在 getString 方法本身的括号中包含了返回 getString 方法的字符串。这样它就会搜索密钥:“key:”而不是正确的密钥:“key”。我的错误代码:

String str = ResourceBundleVariable.getString("key"+": "); //ATTENTION Code not operating as intended

正确代码现在按预期工作:

String str = ResourceBundleVariable.getString("key")+": ";