Java ResourceBundle可以';在罐子里找不到
当我将项目导出到jar时,我遇到了一个问题。当我在Eclipse中运行项目时,ResourceBundle工作正常,但不是从jar运行。我将其导出为导出->jar文件 我在(Windows)cmd->java-jar%projectName%.jar中启动jar。ResourceBundle是:Java ResourceBundle可以';在罐子里找不到,java,resourcebundle,Java,Resourcebundle,当我将项目导出到jar时,我遇到了一个问题。当我在Eclipse中运行项目时,ResourceBundle工作正常,但不是从jar运行。我将其导出为导出->jar文件 我在(Windows)cmd->java-jar%projectName%.jar中启动jar。ResourceBundle是: Eclipse:%projectName%->src->language 在jar中:文件夹语言 我这样加载它: ResourceBundle.getBundle("language.Languag
- Eclipse:%projectName%->src->language
- 在jar中:文件夹语言
ResourceBundle.getBundle("language.Language", currentLocale)
public static String getString(String key) {
try {
return ResourceBundle.getBundle("language.Language", currentLocale)
.getString(key);
} catch (MissingResourceException e) {
return "KEY " + key + " NOT FOUND !";
}
}
我在Stackoverflow上查看了很多其他的问题,他们的问题总是没有提供从根开始的路径。我不知道为什么这不起作用。我也试着把这些.properties文件放在根目录下
注意:管理这些bundle/locale的类也在相同的包中
提前谢谢
编辑:可能需要一些额外的信息,我通过以下方式获得字符串:
ResourceBundle.getBundle("language.Language", currentLocale)
public static String getString(String key) {
try {
return ResourceBundle.getBundle("language.Language", currentLocale)
.getString(key);
} catch (MissingResourceException e) {
return "KEY " + key + " NOT FOUND !";
}
}
堆栈跟踪:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle
for base name language.Language, locale nl_be
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at language.LanguageModel.getString(LanguageModel.java:33)
at cli.class.method(class.java:35)
at main.Main.main(Main.java:26)
特性:
Language_en_US.properties
Language_fr_FR.properties
Language_nl_BE.properties
....
在参数中传递给
ResourceBundle.getBundle()
的区域设置的国家/地区设置为“be”。它应该设置为“be”
您还应该考虑只使用LangEG代码后缀的属性文件,并且在没有后缀的情况下有一个备份包:
- 语言:在万不得已的情况下使用
- 语言:当语言为“nl”时将使用
- Language_nl_BE:如果来自Language_nl的翻译特定于比利时,则应覆盖这些翻译
jar的结果-tf yourjar.jar
Trace添加后,您的命令给出:Unrecognized option:-tf Error:无法创建Java虚拟机。错误:发生致命异常。程序将退出。命令是jar-tf jarFile.jar
,而不是java-jar-tf jarFile.jar
。但是堆栈跟踪足以识别问题。请看我的答案。它说“jar”无法识别。请将JDK/bin目录放入PATH环境变量中。检查我的答案。它回答了你的问题。我设置currentLocale=newlocale(“nl_BE”);那么它是大写的吗?请检查语言环境的javadoc。它应该是新的语言环境(“nl”、“be”)。错误消息显示:找不到基本名称语言的捆绑包。语言,区域设置nl\U be。所以不,不是大写的。啊,我不知道。谢谢