java - 我的 Java 桌面应用程序应该在哪里缓存其下载的资产?
问题描述
我有一个 Java 桌面应用程序,作为其正常操作的一部分,它会下载数十到数百 MB 的图像和音乐数据。它维护此数据的磁盘缓存。如果部分或全部缓存被删除,应用程序会注意到并重新下载丢失的数据。
这是一个有 20 年历史的应用程序,从历史上看,它已将数据放置在user.home
. 我正在计划更新,我想知道是否有用于存储 Windows、MacOS 和 Linux 的应用程序缓存数据的规范位置,如果有,是否有从 Java 访问这些路径的标准方法。
我知道的唯一先例是 Gradle 和 IntelliJ,它们都是桌面 Java 应用程序。Gradle 做我的应用程序目前所做的事情;它创建一个 ~/.gradle 目录并在那里转储数据。IntelliJ 显然试图使用2020 版的更多规范路径;例如,在 Mac 上,它将缓存数据保存到~/Library/Application Support/JetBrains/<product><version>
.
是否有一个库可以为我提供每个操作系统上我的应用缓存的规范位置?如果没有,是否有人在某处有一个列表,以便我可以手动在正确的位置创建目录?
解决方案
推荐阅读
- java - 有没有办法从每行的数组中打印出不同数量的元素
- python - 如何在 Spark 的 Logistic 回归分类器中将多个列作为特征传递?
- python - Django:如何预取模型实例的相关信息。也许通过包装查询集?
- oauth-2.0 - oidc 中多个提供商的相同重定向 uri
- bash - 用 bash 读取 .env(带空格的变量)
- javascript - 如何在单击按钮时自行关闭网页
- ios - 如何识别用户在 iOS 中所做的最后一项活动
- angular - 如何使用 httpclient 发布请求解决 Angular 应用程序中的 Access-Control-Allow-Origin?
- angularjs - 如何为离子应用程序创建本地通知?
- api - 设备:(70:18)类型错误:未定义不是对象(评估“articles.map”)