我正在使用一个依赖于jfreechart(v 1.0.9)的库。
当我尝试运行.jar时,我得到:
java.util.MissingResourceException: Can't find bundle for base name
org.jfree.chart.LocalizationBundle, locale en_US
at java.util.ResourceBundle.throwMissingResourceException
(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:962)
我尝试过创建一个LocalizationBundle.properties文件,但是没有这样做。我已经检查了CLASSPATH,但仍然没有。
有什么想法吗?
答案 0 :(得分:35)
java.util.MissingResourceException: Can't find bundle for base name org.jfree.chart.LocalizationBundle, locale en_US
到目前为止,异常消息详细说明您需要在类路径中包含以下任一文件:
/org/jfree/chart/LocalizationBundle.properties
或
/org/jfree/chart/LocalizationBundle_en.properties
或
/org/jfree/chart/LocalizationBundle_en_US.properties
另请参阅Sun's own tutorial about resourcebundles了解详情。
但由于这实际上是第三方托管属性文件,因此您不应自行创建。它应该已在JFreeChart JAR文件中可用。因此,请确保在运行时期间在类路径中使用它。另外,请确保您使用的是正确的版本,包树中的属性文件的位置可能已根据JFreeChart版本进行了更改。
执行JAR文件时,可以使用-cp
参数指定类路径。 E.g:
java -jar -cp c:/path/to/jfreechart.jar yourfile.jar
或者,您可以在JAR的清单文件中将类路径指定为class-path
条目。您可以在那里使用相对于JAR文件本身的相对路径。 不使用%CLASSPATH%
环境变量,JAR的忽略以及其他未使用java.exe
执行的其他内容> em> -cp
,-classpath
和-jar
参数。
答案 1 :(得分:2)
BalusC是对的。版本1.0.13是最新版本,但1.0.9似乎具有所需的捆绑包:
$ jar tf lib/jfreechart-1.0.9.jar | grep LocalizationBundle.properties org/jfree/chart/LocalizationBundle.properties org/jfree/chart/editor/LocalizationBundle.properties org/jfree/chart/plot/LocalizationBundle.properties
答案 2 :(得分:1)
如果您正在使用IntelliJ IDE,只需右键单击resources包并转到new,然后选择Resource Boundle,它会自动为您创建一个.properties文件。这确实对我有用。
答案 3 :(得分:0)
当您创建ResourceBundle的初始化时,您也可以这样做。
对于测试和开发,我在\ src下创建了一个名为prp.properties的属性文件。
使用这种方式:
ResourceBundle rb = ResourceBundle.getBundle("prp");
命名约定和内容:
http://192.9.162.55/developer/technicalArticles/Intl/ResourceBundles/
答案 4 :(得分:0)
将.properties文件放在与com同级的src/文件夹下即可解决问题。