我使用 Eclipse Oxygen.2 Release (4.7.2) 并尝试开发笔纸字符创建程序作为学习使用不同文件(如 xml 和属性)的练习。
我的ResBundle.properties文件如下所示:
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"));
我仍然遇到异常:
Can't find resource for bundle 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);
我发现这个问题的大多数答案都涉及相同的异常。但他们只告诉我如何将属性文件移动到我的源代码/类路径文件夹中。我之前遇到过异常并移动了文件,所以现在它位于文件夹 lib/lang 中,我将其作为源文件夹添加到我的构建路径中(使用 Eclipse)。之后,我可以继续编程,直到收到上述异常消息。
当我仅使用另一个 key 进行测试时,它可以工作。我尝试重命名属性文件和程序中的 key ,但仍然出现异常。
最奇怪的部分是,它已经起作用了。我可以通过按钮和同一个键打开第二个 JFrame!,这意味着
"sc.title"
和我在第二个 JFrame 中使用的其他键,没有抛出异常。就在对其他 Swing 组件进行了一些修改之后,由于该异常,我无法再启动我的程序。
我发现了这个类似的问题:
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 找不到 key 。我认为我的属性文件结构正确,但我不知道为什么它不起作用。
非常感谢所有可以帮助我一点或很多的人。
编辑(回答@arthur):
我当前的文件夹结构-根文件夹:
lib/lang/ResBundle.properties
Eclipse 向我显示,我包含了如下文件夹
- 我的 java 项目的 Eclipse 属性。显示选项卡“Java Build Path”
最佳答案
我发现了我的错误,对于我发布的问题有如此简单的解决方案,我深感抱歉。我检查了使用资源包 key 的行并且无法工作一百次,但刚才我注意到,我对括号感到困惑。应该是
String str = ResourceBundleVariable.getString("key");
我犯了一个错误,我将 getString 方法返回后的字符串包含在 getString 方法本身的括号中。这样它就会搜索 key :“key:”,而不是正确的 key :“key”。我的错误代码:
String str = ResourceBundleVariable.getString("key"+": "); //ATTENTION Code not operating as intended
正确代码现在按预期工作:
String str = ResourceBundleVariable.getString("key")+": ";
关于java - 找不到 bundle java.util.PropertyResourceBundle、sc.title 的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49449092/