Один файл на компонент или несколько файлов на компонент?

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

Также см. Собственный учебник Sun по пакетам ресурсов для получения дополнительной информации.

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

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

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

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

64
задан Tim Cooper 24 June 2019 в 16:42
поделиться

1 ответ

Одной из причин использования «одного файла на компонент» является отказоустойчивость . При запуске приложения установщик Windows может проверить, отсутствует ли путь keypath какого-либо компонента. Если ключевой путь отсутствует, компонент переустанавливается / ремонтируется.

Если компонент имеет несколько файлов, то только один файл может быть ключевым путем. В wix это указывается установкой KeyPath = yes в элементе File . Тогда другие файлы не будут полностью защищены отказоустойчивостью установщика Windows. Они будут переустановлены только в том случае, если файл ключевого пути пропадет.

Еще одна причина иметь «один файл на компонент» - это установка файлов в места, где они могут уже присутствовать (например, при обновлении приложения или при установке на c: \ windows \ system32 ). Установщик Windows определяет, нужно ли устанавливать компонент, проверяя путь к ключу. Если ключевой путь является файлом и файл уже существует (с той же версией или выше), то компонент не установлен . Это проблема, если другие файлы в компоненте действительно нужно было установить / обновить.

83
ответ дан 24 November 2019 в 15:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: