VS Code 需在项目级 .vscode/settings.json 中配置 files.exclude 才能隐藏 .class 文件和 target/ 等目录;正确写法为{"files.exclude":{"*/.class":true,"target/":true,"build/":true,".mvn/":true,"out/":true}},注意路径大小写、斜杠及作用域。

VS Code 默认不会自动隐藏 .class 文件或 target/ 目录,它们会混在资源管理器里干扰浏览。这不是 bug,而是设计——它把“是否隐藏”交给你按项目决定,但很多人卡在不知道该配哪一项、配错位置或路径写法失效。
为什么 files.exclude 不生效?
常见现象:加了 "**/*.class": true 没反应,或者 target/ 还是展开着。
根本原因不是语法错,而是配置层级和作用域没对上:
-
files.exclude必须写在工作区(.vscode/settings.json)里才对当前 Java 项目生效;写在用户全局设置里,可能被工作区设置覆盖 - 路径模式区分大小写(尤其在 Linux/macOS),
target/不能写成Target/或target(少斜杠) - 如果项目用了 Maven,编译输出目录可能是
target/;Gradle 则是build/,两者得分开配 -
**/*.class只能隐藏文件,不能折叠整个target/文件夹——要隐藏文件夹,必须显式写"target/": true
files.exclude 的正确写法示例
打开你的 Java 项目根目录,在 .vscode/settings.json 中添加(没有该文件就新建):
{
"files.exclude": {
"**/*.class": true,
"target/": true,
"build/": true,
".mvn/": true,
"out/": true
}
}
说明:
-
"**/*.class":递归隐藏所有.class文件(包括嵌套包路径下的) -
"target/"和"build/":分别覆盖 Maven 和 Gradle 默认输出目录;如果你只用 Maven,删掉"build/"即可 -
".mvn/"是 Maven wrapper 目录,无实际源码,建议隐藏 -
"out/"是部分 IDE(如 IntelliJ)或老版配置的输出目录,留着不碍事
避免误伤源码或调试失败的细节
有些隐藏配置看着省事,实则埋雷:
- 别用
"**/target/**"—— 它会匹配到src/main/resources/target/这类合法资源路径,导致文件意外消失 - 不要在
search.exclude里重复配.class,那只是搜索时过滤,不影响侧边栏显示 - 如果用了 Lombok,别隐藏
lombok.jar所在目录(比如lib/),否则vmArgs中的-javaagent会静默失败 - 修改后无需重启 VS Code,但要确保你当前打开的是项目根文件夹(含
pom.xml或build.gradle),否则.vscode/settings.json不会被加载
真正起效的关键不在写多少条规则,而在于确认配置落在项目级、路径名与构建工具输出一致、且没用通配符过度匹配——尤其是 target/ 这种高频目录,少一个斜杠或大小写错,就白配了。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











