找不到基本名称的包

时间:2010-01-17 23:52:30

标签: java jfreechart

我正在使用一个依赖于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,但仍然没有。

有什么想法吗?

5 个答案:

答案 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/文件夹下即可解决问题。