Подтвердить что ты не робот

Не удается найти пакет для базового имени

Я использую библиотеку, которая имеет зависимость от 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, все равно не пошел.

Любые идеи?

4b9b3361

Ответ 1

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

В связи с этим сообщение об исключении указывает подробно, что вам нужно иметь один из следующих файлов в пути к классам:

/org/jfree/chart/LocalizationBundle.properties

или

/org/jfree/chart/LocalizationBundle_en.properties

или

/org/jfree/chart/LocalizationBundle_en_US.properties

Также см. собственный учебник по ресурсам о ресурсах.

Но поскольку это фактически файл с управляемыми свойствами сторонних разработчиков, вы не должны создавать его самостоятельно. Он должен быть уже доступен в JAR файле JFreeChart. Поэтому убедитесь, что он доступен в пути к классам во время выполнения. Также убедитесь, что вы используете правильную версию, расположение файла свойств внутри дерева пакетов может быть изменено в версии JFreeChart.

При выполнении JAR файла вы можете использовать аргумент -cp для указания пути к классам. Например:.

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

В качестве альтернативы вы можете указать путь к классу как class-path в файле манифеста JAR. Вы можете использовать там относительные пути, которые относятся к самому файлу JAR. Не используйте не переменную среды %CLASSPATH%, она игнорируется JAR и все остальное, которые не выполняются с java.exe без -cp, -classpath и -jar.

Ответ 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

Ответ 3

Когда вы создаете инициализацию ResourceBundle, вы также можете сделать это.

Для тестирования и разработки я создал файл свойств в \src с именем prp.properties.

Используйте этот способ:

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

Соглашение об именовании и прочее:

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

Ответ 4

Если вы используете IntelliJ IDE, просто щелкните правой кнопкой мыши на пакете ресурсов и перейдите к новому, а затем выберите "Ограничение ресурсов", оно автоматически создаст для вас файл .properties. Это работало для меня.