无法找到基本名称的包

我正在使用一个依赖于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:找不到基本名称的包
     org.jfree.chart.LocalizationBundle,locale en_US 

到目前为止,exception消息详细说明您需要在类路径中包含以下任一文件:

  /org/jfree/chart/LocalizationBundle.properties 

要么

  /org/jfree/chart/LocalizationBundle_en.properties 

要么

  /org/jfree/chart/LocalizationBundle_en_US.properties 

有关更多信息,另请参阅Sun自己的有关resourcebundles的教程 。

但由于这实际上是第三方托管属性文件,因此您不应自行创建。 它应该已经在JFreeChart JAR文件中可用。 因此,请确保在运行时期间在类路径中提供它。 还要确保使用正确的版本,包树中的properties文件的位置可能已根据JFreeChart版本进行了更改。

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

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

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

BalusC是对的。 版本1.0.13是最新版本,但1.0.9似乎具有所需的捆绑包:

 $ jar tf lib / jfreechart-1.0.9.jar |  grep LocalizationBundle.properties 
组织/ jfree /图表/ LocalizationBundle.properties
组织/ jfree /图表/编辑/ LocalizationBundle.properties
组织/ jfree /图表/剧情/ LocalizationBundle.properties

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

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

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

使用这种方式:

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

命名约定和内容:

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