Java — куда поместить данные приложения?

Я пишу Java-приложение, для которого требуется несколько файлов ресурсов (будет около 100 файлов по 20-40 КБ каждый). Они не редактируются пользователем, но будут требовать периодического обновления (в приложении будет функция проверки изменений в файлах ресурсов и их загрузки). В идеале приложение должно быть кроссплатформенным.

Разрешение доступа на запись к подкаталогу каталога программы обычно не одобряется. Если бы я делал это как приложение для Windows, я мог бы поместить их в данные приложения, но это не будет кросс-платформенным. Куда лучше их поставить?


person Jivlain    schedule 07.11.2011    source источник


Ответы (3)


Обычно я создаю каталог (имя, начинающееся с точки ".") в домашнем каталоге пользователя (System.getProperty("user.home"), если я не ошибаюсь) и использую его для хранения конкретного приложения. В качестве альтернативы вы можете взять имя каталога от пользователя во время установки приложения.

person aishwarya    schedule 07.11.2011

Имейте каталог, который вы используете для хранения этих файлов. Поместите эту информацию в файл конфигурации свойств. При запуске загрузите файл конфигурации из каталога установки вашего приложения. Из этого файла свойств он сообщает вам, где найти каталог файлов. Когда ваш установщик запускается, он может записать этот файл конфигурации для платформы, на которую вы устанавливаете, и это может зависеть от ОС.

person chubbsondubs    schedule 07.11.2011

Укажите настраиваемое местоположение, но по умолчанию это каталог в домашнем каталоге пользователя или в определенном для ОС местоположении.

Вам придется иметь дело с этим для конкретной платформы, несмотря ни на что. Однако у вас есть несколько вариантов под OS X. Для unix-подобных систем либо домашний каталог, либо, возможно, что-то под /var.

Тем не менее, я не считаю, что программа, управляющая своими данными в собственном каталоге, — это плохо; рассмотрим программу со встроенной базой данных или что-то подобное. Гораздо надежнее использовать домашний каталог приложения.

person Dave Newton    schedule 07.11.2011