У меня есть настольное приложение Java, которое загружает от десятков до сотен МБ изображений и музыкальных данных в рамках своей обычной работы. Он поддерживает дисковый кеш этих данных. Если часть или весь кеш удалены, приложение заметит и повторно загрузит недостающие данные.
Этому приложению 20 лет, и исторически оно размещало данные в скрытом каталоге (~/.myapp) под user.home
. Я планирую обновление, и мне интересно, есть ли канонические места для хранения данных кэша приложений для Windows, MacOS и Linux, и если да, то есть ли стандартные способы доступа к этим путям из Java.
Единственные известные мне прецеденты — это Gradle и IntelliJ, оба Java-приложения для настольных компьютеров. Gradle делает то, что делает мое приложение в настоящее время; он создает каталог ~/.gradle и сбрасывает туда данные. IntelliJ, по-видимому, пытается использовать более канонические пути в выпуске 2020 года; например, на Mac он сохраняет данные кеша в ~/Library/Application Support/JetBrains/<product><version>
.
Есть ли библиотека, которая предоставит мне каноническое расположение кеша моего приложения в каждой ОС? Если нет, есть ли у кого-нибудь список, чтобы я мог вручную создавать каталоги в нужных местах?