IDEA本体建议装C盘,缓存与配置目录必须迁至D盘;因安装路径影响版本号推导、注册表识别及Toolbox兼容性,仅修改安装路径至D盘易致插件失效、升级失败,正确方式是通过bin/idea64.exe.vmoptions添加-Didea.config.path和-Didea.system.path等JVM参数显式指定D盘路径,并手动清理原C盘残留目录。

IDEA 本体建议装 C 盘,缓存和配置目录必须迁到 D 盘(或非系统盘)——这是 Windows 下兼顾启动速度、升级安全与磁盘寿命的唯一合理方案。
为什么不能全装 D 盘?
很多人看到“C 盘空间紧张”就一股脑把 idea-2026.1.1.exe 安装向导里的路径改成 D:\Program Files\JetBrains\IntelliJ IDEA,结果后续遇到插件失效、版本升级失败、甚至 Toolbox 无法识别已安装实例。根本原因是:IDEA 的路径推导逻辑依赖安装路径中的版本号字符串(如 IntelliJIdea2026.1)来生成默认的 config 和 system 子目录名;若手动改到 D 盘且路径不规范(比如含空格、中文、版本号不匹配),会导致 %APPDATA% 和 %LOCALAPPDATA% 下的派生路径错乱,JVM 参数也容易失效。
更关键的是:Windows 注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\JetBrains\IntelliJ IDEA\InstallDir 会记录 C 盘默认安装路径,Toolbox 和其他 JetBrains 工具都优先读它——你装在 D 盘,它们可能压根“看不见”这个安装。
怎么安全迁移 config/system 目录到 D 盘?
迁移不是靠复制粘贴完事,必须让 IDEA 启动时就认准新路径。最稳定的方式是修改 JVM 启动参数:
- 找到 IDEA 安装目录下的
bin/idea64.exe.vmoptions(Windows)或bin/idea.vmoptions(macOS/Linux) - 在文件末尾添加四行(注意每行一个参数,无空格,路径用正斜杠或双反斜杠):
-Didea.config.path=D:/jetbrains/config -Didea.system.path=D:/jetbrains/system -Didea.plugins.path=D:/jetbrains/plugins -Didea.log.path=D:/jetbrains/log
- 确保
D:/jetbrains/父目录存在且当前用户有写权限;IDEA 会自动创建子目录,但不会自动建父级 - 重启 IDEA,执行
Help → Diagnostic Tools → Debug Log Settings,输入#com.intellij.openapi.application.PathManager查看日志首段,确认输出的路径已变成 D 盘路径
别碰 idea.properties ——它只影响极少数旧版行为,且优先级低于 JVM 参数,改了反而容易和 .vmoptions 冲突。
缓存放 D 盘后,索引变慢吗?
不会。现代 SSD 随机读写性能差距极小,system 目录里最重的 index 和 caches 子目录放在 D 盘 SSD 上,实测启动和项目加载耗时与 C 盘无差异。真正拖慢的是 C 盘长期满载导致的 NTFS 碎片+系统 I/O 拥塞——把几 GB 的缓存移走,反而让 Windows 资源调度更干净。
要注意的是:system 目录不能跨盘符硬链接或符号链接(Windows 10/11 对 Junction 支持不稳定),必须用 -Didea.system.path 显式指定;否则 IDEA 可能回退到默认路径,造成“看起来迁了,其实还在 C 盘写”的假象。
多版本共存时路径怎么管理?
如果你同时装了 2025.3 和 2026.1,每个版本的 config 和 system 必须分开放,否则配置冲突、插件互相覆盖。正确做法是:
- 为每个版本单独建子目录,例如:
D:/jetbrains/idea2025.3/config、D:/jetbrains/idea2026.1/system - 每个版本的
.vmoptions文件里写对应路径,不要共用同一组路径 - 避免把
plugins目录设成共享——不同 IDEA 版本的插件二进制不兼容,强行复用会导致启动报PluginException: incompatible plugin
最容易被忽略的一点:迁移完成后,旧的 %APPDATA%\JetBrains\IntelliJIdea2026.1\ 和 %LOCALAPPDATA%\JetBrains\IntelliJIdea2026.1\ 必须手动删掉——IDEA 不会自动清理,残留文件可能在某次异常退出后又被悄悄写入。



















