28

我正在使用一个依赖于 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,还是不行。

有任何想法吗?

4

4 回答 4

37
java.util.MissingResourceException:找不到基本名称的包
    org.jfree.chart.LocalizationBundle,语言环境 en_US

至此,异常消息详细说明您需要在类路径中包含以下文件之一:

/org/jfree/chart/LocalizationBundle.properties

或者

/org/jfree/chart/LocalizationBundle_en.properties

或者

/org/jfree/chart/LocalizationBundle_en_US.properties

另请参阅有关资源包的官方 Java 教程以获取更多信息。

但由于这实际上是第 3 方托管的属性文件,因此您不应该自己创建一个。它应该已经在 J​​FreeChart JAR 文件中可用。因此,请确保在运行时在类路径中提供它。还要确保您使用的是正确的版本,包树中的属性文件的位置可能已根据 JFreeChart 版本而改变。

执行 JAR 文件时,可以使用-cp参数指定类路径。例如:

java -jar -cp c:/path/to/jfreechart.jar yourfile.jar

或者,您可以将类路径指定为class-pathJAR 清单文件中的条目。您可以在其中使用相对于 JAR 文件本身的相对路径。不要使用环境变量,它会被 JAR 和其他所有使用,和参数执行的东西忽略。%CLASSPATH%java.exe -cp-classpath-jar

于 2010-01-17T23:59:47.817 回答
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
于 2010-01-18T02:56:31.620 回答
2

如果您使用 IntelliJ IDE,只需右键单击资源包并转到新建,然后选择 Resource Boundle,它会自动为您创建一个 .properties 文件。这对我有用。

于 2017-12-18T15:55:54.793 回答
0

将 .properties 文件放在与 com 相同级别的 src/ 文件夹下解决了这个问题。

于 2021-04-02T08:08:59.653 回答