Я недавно отправил этот вопрос о том, где хранить данные приложений, не относящихся к пользователю, в Linux.
Как видите, я намеревался использовать «/ Library / Application Support» на Mac и, возможно, «/ var / lib» или «/ usr / share» в Linux.
В существующем приложении (в настоящее время только для Windows) мы используем «\ ProgramData» в Vista и Windows 7 и «\ Documents and Settings \ All Users» в Windows XP (оба получены с помощью System.getenv («ALLUSERSPROFILE»), который не работает на Mac или Linux).
Проблема, с которой я сталкиваюсь в местоположениях Mac и Linux (в отличие от Windows), заключается в том, что они недоступны пользователям без полномочий root / admin, что лишает их цели.
Какая лучшая практика в этом случае? Мы могли бы просто сохранить данные приложения в домашнем каталоге пользователя. Я бы на самом деле не был бы против этого, так как кажется разумным, чтобы приложение выглядело абсолютно «новым», когда новый пользователь пытается его использовать. Основная проблема, которую это дает нам, заключается в том, что каждый пользователь должен будет ввести серийный номер, чтобы активировать приложение (информация об активации является частью «данных приложения», которые мы должны хранить). Это не совсем идеально.
Тем не менее, если нет реальной альтернативы, то я полагаю, что это должно будет сделать.