繁体   English   中英

找不到基本名称的包

[英]Can't find bundle for base name

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

有什么想法吗?

 java.util.MissingResourceException:找不到基本名称的包\n     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 教程以获取更多信息。

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

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

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

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

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

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

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

当您创建 ResourceBundle 的初始化时,您也可以这样做。

为了测试和开发,我在 \\src 下创建了一个名为 prp.properties 的属性文件。

使用这种方式:

ResourceBundle rb = ResourceBundle.getBundle("prp");

命名约定和东西:

http://192.9.162.55/developer/technicalArticles/Intl/ResourceBundles/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM