Impossible de trouver le bundle pour le nom de base

J'utilise une bibliothèque qui dépend de jfreechart (V 1.0.9).

Quand j'essaie d'exécuter le .jar, je reçois:

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)

J'ai essayé de créer un LocalizationBundle.fichier de propriétés, mais cela ne l'a pas fait. J'ai vérifié le CLASSPATH, toujours pas aller.

Des idées?

24
demandé sur Shane Castle 2010-01-18 02:52:30

4 réponses

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

Au point, le message d'exception indique en détail que vous devez avoir l'un des fichiers suivants dans le classpath:

/org/jfree/chart/LocalizationBundle.properties

Ou

/org/jfree/chart/LocalizationBundle_en.properties

Ou

/org/jfree/chart/LocalizationBundle_en_US.properties

Voir aussi le tutoriel de Sun sur resourcebundles pour plus d'informations.

Mais comme il s'agit en fait d'un fichier de propriétés gérées par une tierce partie, vous ne devriez pas en créer vous-même. Il devrait déjà être disponible dans le fichier JAR JFreeChart. Afin de s'assurer que vous l'avez disponible dans le classpath pendant l'exécution. Assurez-vous également que vous utilisez la bonne version, l'emplacement du fichier propertiesfile dans l'arborescence des paquets pourrait avoir changé par la version de JFreeChart.

Lors de l'exécution D'un fichier JAR, vous pouvez utiliser l'argument -cp pour spécifier le chemin de classe. Par exemple:

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

Vous pouvez également spécifier le chemin de classe en tant qu'entrée class-path dans le fichier manifeste du JAR. Vous pouvez y utiliser des chemins relatifs qui sont relatifs au fichier JAR lui-même. Faire pas utilisez la variable d'environnement %CLASSPATH%, elle est ignorée par JAR et tout le reste qui ne sont pas exécutés avec java.exe sans -cp, -classpath et -jar arguments.

34
répondu BalusC 2010-01-18 00:12:46

BalusC a raison. La Version 1.0.13 est en cours, mais 1.0.9 semble avoir les bundles requis:

$ 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
répondu trashgod 2010-06-20 00:05:53

Si vous utilisez IntelliJ IDE juste un clic droit sur le package de ressources et aller à nouveau, puis sélectionnez ressource Boundle créer automatiquement un .fichier de propriétés pour vous. Cela a fonctionné pour moi .

1
répondu mmdreza baqalpour 2017-12-18 15:55:54

Lorsque vous créez une initialisation du ResourceBundle, vous pouvez également le faire.

Pour les tests et le développement, j'ai créé un fichier de propriétés sous \ src avec le nom prp.propriété.

Utilisez cette façon:

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

Convention de nommage et autres:

http://192.9.162.55/developer/technicalArticles/Intl/ResourceBundles/
0
répondu Franky 2013-02-25 14:38:28