Java - куда поместить данные приложения?
Я пишу Java-приложение, для которого требуется несколько файлов ресурсов (будет около 100 файлов по 20-40 КБ каждый). Они не редактируются пользователем, но потребуют периодических обновлений (в приложении будет функция для проверки изменений в файлах ресурсов и их загрузки). В идеале приложение должно быть кроссплатформенным.
Разрешение на запись в подкаталог каталога программы обычно не одобряется. Если бы я делал это как приложение для Windows, я мог бы поместить их в Application Data, но это не приведет к кроссплатформенности. Что было бы лучшим местом для их размещения?
3 ответа
Обычно я создаю каталог (имя начинается с точки ".") В домашнем каталоге пользователя (System.getProperty("user.home")
если я не ошибаюсь) и используйте это для специфического хранилища приложения. Кроме того, вы можете взять имя каталога у пользователя во время установки приложения.
Есть каталог, в котором вы храните эти файлы. Поместите эту информацию в файл конфигурации свойств. При запуске загрузите файл конфигурации из каталога установки приложения. Из этого файла свойств он говорит вам, где найти каталог вашего файла. Когда ваш установщик запускается, он может записать этот файл конфигурации для платформы, на которую вы устанавливаете, и это может зависеть от ОС.
Укажите настраиваемое расположение, но по умолчанию укажите каталог в домашнем каталоге пользователя или в определенном для ОС месте.
Вам придется иметь дело с этим в зависимости от платформы, несмотря ни на что. У вас есть несколько вариантов под OS X, хотя. Для Unix-подобных систем либо домашний каталог, либо, возможно, что-то под /var
,
Тем не менее, я не считаю, что программа, управляющая своими собственными данными в своем собственном каталоге, - это плохо; рассмотрим программу со встроенной базой данных или аналогичную. Гораздо надежнее использовать домашний каталог приложения.