报错信息:
C:\xxx\xxxxx\src\main\java\com\ruoyi\xxxxxxx\controller\XxxController.java:23:45
java: 找不到符号
符号: 类 XxxController
位置: 程序包 com.ruoyi.xxx.xxx.service
报错界面:

这个错误的核心问题是编译器在指定包下找不到XxxController这个类 / 接口,以下是按优先级排序的排查和解决方法(结合若依 (RuoYi) 框架的特性):
一、基础排查(90% 的问题出在这里)
1. 检查类名 / 包名拼写(Java 大小写敏感)
- 确认使用该类的代码中,类名是 XxxController (不是 XxXController /Xxxcontroller等)。
- 确认包路径是
com.ruoyi.xxx.xxx.service:- 避免拼写错误
- 避免目录层级错误(比如 xxx文件夹放在 xxxxxx外)。
2. 检查类文件是否存在
到项目源码目录(默认 src/main/java)下,核对路径:
com/
ruoyi/
xxx/
xxx/
service/
XxxController.java // 必须存在这个文件!
-
如果文件不存在:新建该接口(若依的 Service 接口规范示例):
package com.ruoyi.xxx.service; import Xxx; import java.util.List; /** * xxxService接口 * * @author 王大锤 * @date 2015-12-08 */ public interface XxxService { /** * 查询xxx */ public XxxselectXxxById(Long id); /** * 查询xxx列表 */ public List<Xxx> selectXxxList(Xxx xxx); // 其他业务方法... } -
如果文件在其他包下:要么移动文件到指定包,要么修正导入语句的包路径。
3. 检查导入语句是否缺失 / 错误
在使用XxxService 的类中(比如 Controller/ServiceImpl),必须有正确的导入:
// 正确导入
import com.ruoyi.xxx.xxx.service.XxxService;
// 错误示例(包名错/类名错)
// import com.ruoyi.xxx.xxx.service.Xxx;
// import com.ruoyi.xxx.xxx.impl.XxxService;
二、多模块项目专属排查(若依是多模块架构)
如果IXxxService 放在其他模块(比如 ruoyi-xxx),而你在另一个模块(比如 ruoyi-system)使用:
1. 检查模块依赖
在当前模块的 pom.xml(Maven)中,添加对接口所在模块的依赖:
<dependencies>
<!-- 引入包含XxxService的模块 -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-xxx</artifactId>
<version>${ruoyi.version}</version> <!-- 与项目版本一致 -->
</dependency>
</dependencies>
2. 确认依赖已编译
我就是这个问题导致,重新执行 Maven 命令清理并编译就好了:
mvn clean compile
或者直接在页面点击执行处理

三、IDE / 编译缓存问题
如果以上都正确,但仍报错,大概率是 IDE 缓存或编译产物问题:
1. IDE 刷新 / 重建(以 IDEA 为例)
- 右键项目 →
Maven→Reload Project(刷新 Maven 依赖); - 点击
Build→Rebuild Project(重建项目); - 终极方案:
File→Invalidate Caches / Restart(清空缓存并重启 IDEA)。
2. 清理编译产物
删除项目根目录的 target 文件夹(Maven 编译产物),再重新编译。
四、其他罕见原因
- JDK 版本不一致:确认项目 SDK、模块 SDK、Maven 编译插件的 JDK 版本统一(比如都是 JDK8/11)。
- 类被排除编译 :检查
pom.xml或 IDE 的「排除编译目录」配置,确保XxxService.java被纳入编译范围。 - 接口被误删 / 重命名:检查版本控制(Git/SVN),确认该类没有被误删或重命名。
总结
按以下顺序排查:
- 确认
XxxService.java文件存在且路径正确; - 检查类名 / 包名拼写(含大小写);
- 检查导入语句;
- 多模块项目核对依赖;
- 刷新 / 重建项目清理缓存。