2010-01-17 23 views
22

Estoy usando una biblioteca que tiene una dependencia en jfreechart (v 1.0.9).No se puede encontrar el paquete para el nombre base

Cuando trato de ejecutar el .jar, me sale:

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) 

He intentado crear un archivo LocalizationBundle.properties, pero que no lo hice. He revisado el CLASSPATH, todavía no voy.

¿Alguna idea?

Respuesta

33
java.util.MissingResourceException: Can't find bundle for base name 
    org.jfree.chart.LocalizationBundle, locale en_US

Al punto, el mensaje de excepción dice en detalle que es necesario tener cualquiera de los siguientes archivos en la ruta de clase:

/org/jfree/chart/LocalizationBundle.properties

o

/org/jfree/chart/LocalizationBundle_en.properties

o

/org/jfree/chart/LocalizationBundle_en_US.properties

Consulte también Sun's own tutorial about resourcebundles para obtener más información.

Pero como este es en realidad un archivo de propiedades administradas por terceros, no debe crear uno usted mismo. Debería estar ya disponible en el archivo JFreeChart JAR. Así que asegúrese de tenerlo disponible en el classpath durante el tiempo de ejecución. Asegúrese también de que está utilizando la versión correcta, la ubicación del archivo de propiedades dentro del árbol de paquetes podría haber cambiado por la versión de JFreeChart.

Al ejecutar un archivo JAR, puede usar el argumento -cp para especificar el classpath. Ej .:

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

alternativa, se puede especificar la ruta de clase como class-path entrada en el archivo de manifiesto de la jarra. Puede usar rutas relacionadas relativas al archivo JAR. No no usar la variable de entorno %CLASSPATH%, es ignorado por de JAR y todo lo demás que no se ejecuta con java.exesin-cp, -classpath y -jar argumentos.

+0

También vale la pena comprobar que no tiene errores ortográficos en el nombre de su paquete, gasto 30 minutos depurando mi aplicación solo para darme cuenta de que cuando renuncié a mi paquete de IDE accidentalmente agregué un espacio delante de él (trabajé) en el cuadro de Linux para que el sistema operativo no se queje). Facepalm ... – csharpfolk

2

BalusC tiene razón. Versión 1.0.13 es actual, pero 1.0.9 parece tener los paquetes requeridos:

 
$ 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 
0

Cuando se crea una inicialización del ResourceBundle, puede hacerlo de esta manera también.

Para pruebas y desarrollo, he creado un archivo de propiedades en \ src con el nombre prp.properties.

Uso de esta manera:

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

convenio de nombres y esas cosas:

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

Si está utilizando IntelliJ IDE simplemente haga clic derecho sobre el paquete de recursos y vaya a Nuevo y seleccione Recursos boundle automáticamente crea un archivo .properties para ti. Esto funcionó para mí.

Cuestiones relacionadas