Общее место для создания файлов на разных платформах (не для пользователя) - PullRequest
2 голосов
/ 24 октября 2011

Я пишу кроссплатформенное Java-приложение, и мне нужно место, где я могу хранить некоторое количество файлов.Эти файлы будут использоваться другим Java-приложением, которое может работать под другим пользователем.Это означает, что я не могу использовать:

System.getProperty("user.home");

, поскольку у меня могут отсутствовать разрешения на чтение / запись этих файлов.Мне нужен какой-то способ получить папку, не относящуюся к пользователю, где каждое приложение может создавать / читать / удалять файлы (что-то вроде «C: \ ProgramData» для Windows).Существует ли кроссплатформенный способ получения таких папок (по крайней мере, для Windows и Linux) или, если их нет, - как лучше всего получить такие папки для Windows (должна работать на XP-7), Linux и Android?,Любые кусочки головоломки приветствуются.

1 Ответ

1 голос
/ 24 октября 2011

Мне неизвестна такая кроссплатформенная папка, которая доступна для чтения всем пользователям.Но вы можете:

  • Определить определенную папку для каждой ОС, commons-lang может помочь вам определить платформу (см. SystemUtils )
  • Проверьте, если папкачтение / запись для текущего пользователя во время запуска приложения.

Использование центральной конфигурации (где папка обмена данными определяется для этой установки) также может быть вариантом, но это зависит от упаковкивашего проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...