解读JetBrains ToolBox以及Windows环境AppData的那点事
AppData
顾名思义应用程序数据,指的就是程序运行实例数据。用于存储应用程序的自定义设置和缓存数据。这些数据不仅包括程序个性化的配置,还涵盖了在应用程序运行过程中产生的临时文件和日志信息。本身它是一个隐藏文件夹,位于每个用户的个人文件夹下。具体位置是 C:\Users<用户名>\AppData,当UAC彻底关闭时普通权限则可以直接访问它。
它主要描述以下三类信息:
- 程序实例的运行信息,比如xml、json、config以及properties配置等
- 运行实例数据,比如过程数据(Packages、TempFile、CacheData以及WSL.ext4.vhdx)
- 运行日志数据,比如log、txt等
子目录结构
- Local: 主要用于存储本地的应用程序实例。
- Locallow: 用于存储共享的应用程序实例,比如无痕模式浏览器,安装软件时指向所有用户时等等。
- Roaming: 用于存储漫游的应用程序实例。比如,在域环境中使用 Windows 的用户,其中的实例数据允许同步到同一域内的其他设备。比如,你的浏览器收藏夹、书签、重要应用设置等。
运行环境
- Microsoft Windows 10.0.19045.5487 x64 专业工作站版 22H2
Jetbrains Toolbox
这款工具是什么,就不用我再多作介绍了。赶紧下载开搂吧~最新版本2.6.1, Released: April 23, 2025
不要着急去安装IDE工具(通过右侧的3个点可以指定安装版本)。上图就是安装着急了,导致默认全给安装到系统盘。下面以JetBrains WebStorm
作为实例,做一下解剖和优化思路。
- HomePath(程序包默认安装路径): [User Name]\AppData\Local\Programs\WebStorm
实际可以修改路径位置后,再来安装。
- Shell脚本位置
什么意思?简单点讲,就是安装的IDE工具,所生成的cmd启动脚本存放路径。 - 建议关闭的几个选项
JetBrains WebStorm
由于安装时,没有修改默认安装路径。则直接安装在Programs位置:
那第三方安装的插件安装在哪呢,实际上是在漫游目录路径下
OK,那随着插件数据的增加,能否迁移插件默认安装路径呢?当然可以,打开programs/WebStorm/bin
路径下的idea.properties配置文件,将如下位置进行重新指向:
处理后代码:
# 使用${idea.home.path}宏指定相对于IDE安装home的位置.
# 使用${user.home}宏指定相对于User账号根路径位置,比如C:\Users\Administrator\
# 使用${xxx},其中xxx是任何Java属性(包括在此文件的前几行中定义的)来引用其值.
# Windows用户注意:请确保使用正斜杠:C:/dir1/dir2.
#---------------------------------------------------------------------
# 如果要自定义设置目录的路径,请取消此选项的注释.
#---------------------------------------------------------------------
idea.config.path=${user.home}/.WebStorm/config
#---------------------------------------------------------------------
# 如果要自定义缓存目录的路径,请取消此选项的注释.
#---------------------------------------------------------------------
idea.system.path=${user.home}/.WebStorm/system
#---------------------------------------------------------------------
# 如果您想自定义用户安装的插件目录的路径,请取消此选项的注释.
#---------------------------------------------------------------------
idea.plugins.path=${idea.config.path}/plugins#---------------------------------------------------------------------
# 如果要自定义日志目录的路径,请取消此选项的注释.
#---------------------------------------------------------------------
idea.log.path=${idea.system.path}/log
当配置文件保存后,重启Webstorm则检查在宏路径下是否生成了.WebStorm
子目录。比如config配置信息,会自动生成config配置目录信息。
还可以自定义宏变量对象,比如我的配置是这样的:
# 用户自定义宏变量
usercustom.path=F:/UserSettings/JetBrains# 自定义配置目录(默认位置:C:\Users\Administrator\AppData\Roaming\JetBrains\WebStorm2024.3)
idea.config.path=${usercustom.path}/.WebStorm/config# 自定义缓存目录(默认位置:C:\Users\Administrator\AppData\Local\JetBrains\WebStorm2024.3)
idea.system.path=${usercustom.path}/.WebStorm/system# 自定义用户安装的插件目录(默认位置:C:\Users\Administrator\AppData\Roaming\JetBrains\WebStorm2024.3\plugins)
idea.plugins.path=${usercustom.path}/.WebStorm/plugins# 自定义日志目录(默认位置:C:\Users\Administrator\AppData\Local\JetBrains\WebStorm2024.3\log)
idea.log.path=${usercustom.path}/.WebStorm/log
说几处重点细节
- 自定义配置目录,实际上就是Roaming漫游设置数据(比如,界面代码习惯和用户自定义安装插件等)
- 自定义缓存目录,就是Local本地实例化信息(比如,项目索引目录、项目预加载信息以及程序运行日志等)
- 当我们自定义变更上述两处存放路径时,则其中的用户安装插件、运行日志记录路径也需要自定义重新指定(不然,IDE启动一直会警告无法加载原有信息数据)
- 当配置完成,重启IDE程序后(虽然有报错)直接退出关闭程序。回到默认位置路径,将其中的内容直接复制(覆盖)该目录所有数据即可
- 最后,发现只有Roaming一处的目录无法删除,仍提示系统被占用中。不用怀疑,只保存该文件夹和其中
webstorm64.exe.vmoptions
文件,其它内容直接删除就行。不能将该文件迁移到config,系统一直不能读取。测试过很多次,改ToolBox配置路径非常麻烦,所以就保留这个做法了。
-待续-