绝大多数“找不到类”问题源于类路径配置错误,需依次检查模块依赖(Scope为Compile)、源码/资源目录标记、输出路径设置,刷新Maven/Gradle依赖,核对运行配置的module选择及JDK版本匹配。

IDEA 找不到类(如报 Cannot resolve symbol 或运行时报 ClassNotFoundException),绝大多数情况不是代码写错了,而是类路径(Classpath)配置没对上——尤其是模块依赖、Maven/Gradle 同步、输出目录或 JDK 版本这几个环节容易出岔子。
检查项目结构与模块依赖是否正确关联
IDEA 的“Project Structure”(Ctrl+Alt+Shift+S)是类路径问题的首要排查入口。重点看三块:
-
Modules → Dependencies:确认所需模块(比如
common或第三方 JAR)已添加,且 Scope 是Compile(而非Provided或Runtime);若依赖是 JAR 文件,确保路径存在且未标红 -
Modules → Sources:源码目录(如
src/main/java)必须标记为Sources,资源目录(src/main/resources)标记为Resources,否则编译器不识别也不打包 -
Modules → Paths:确认 “Inherit project compile output path” 已勾选,或自定义输出路径(如
out/production/xxx)真实存在且可写
刷新 Maven/Gradle 并验证依赖是否真正加载
即使 pom.xml 写对了,IDEA 也可能没同步依赖。别只靠右键“Reload project”,要确认实际效果:
- Maven 项目:点击右侧 Maven 工具窗口 → 刷新按钮,再展开
Dependencies节点,找你要用的类所属的包(如org.apache.commons.lang3.StringUtils),看它是否出现在列表中 - Gradle 项目:执行
./gradlew build --refresh-dependencies命令行后,在 IDEA 中点 Gradle 工具窗口 → Refresh - 如果依赖显示为灰色或带警告图标,鼠标悬停看提示——常见原因是仓库地址不可达、版本号拼错、或被
排除了
核对编译输出与运行配置的类路径一致性
编译成功 ≠ 运行时能加载。IDEA 的运行配置(Run Configuration)可能用了错误的 classpath:
立即学习“Java免费学习笔记(深入)”;
- 点右上角运行配置下拉箭头 → Edit Configurations… → 选中你的 Application 配置
- 在 Configuration 标签页,确认
Use classpath of module:选的是你当前主模块(不是 test 模块或空模块) - 在 Environment 标签页,如有手动设置
CLASSPATH环境变量,建议清空——IDEA 默认会自动组装,加了反而冲突 - 运行前可勾选 Build project before run,避免用旧字节码
留意 JDK 版本与语言级别是否匹配
类路径正常但依然报错?可能是 JDK 不兼容。例如用 JDK 17 编译的模块,被设成 JDK 8 运行,或 module-info.java 引入了未导出的包:
- 进入 File → Project Structure → Project,确认
Project SDK和Project language level匹配你代码使用的语法(如用了var就不能设为 7) - 每个 Module 也要单独检查 Modules → Language level,避免个别模块被降级
- 如果是 Java 9+ 的模块化项目,检查
module-info.java是否requires了所需模块,且目标模块确实exports对应包
基本上就这些。多数时候只需刷新 Maven + 检查 Sources 标记 + 核对运行配置的 module 选择,就能解决 90% 的“找不到类”问题。不复杂但容易忽略细节。










