idea之:debug学习各符号意义

必要性

将理论变成实践,最近从基础开始学习,对于debug的重要性重视的太晚,导致花费了大量时间。当代码报错的时候,虽然知道不去一味的百度寻找,知道看报错的内容了,但是自己不知道报错的内容对应的可能性也是很多的,一项项排除,也会浪费大量时间,有时候甚至时间浪费了,问题还是解决不了。

从根源解决

debug会帮助你,从逻辑出发,一步步的运行,让你找到具体自己是什么地方出现了问题,从而有针对性的解决。

每个图标代表的意思

在这里插入图片描述debug启动服务器:三角形的符号代表run 模式,旁边的虫子一样的符号代表的就是启动debug。

2.在这里插入图片描述断点:在代码左边行号栏,双击会产生如上图所示的红色圆点点,这个就是断点。也可以使用Ctrl+F8打上或取消断点。

在这里插入图片描述

debug窗口:当访问到第一个断点的时候,可以自动弹出debug窗口。

(注意:如果没有,可以自己设置弹出debug窗口,如图)
在这里插入图片描述4.
在这里插入图片描述调式窗口:横窗,一共有七个按钮,从左往右分别是:Show Execution Point,Step Over,Step Into,Force Step Into(Step Into My Code),Step Out,Drop Frame,Run toCursor,Evaluate Expression。

Show Execution Point:显示执行点。快捷键:Alt+F10:
Show Execution Point:显示执行点。快捷键:Alt+F10
Step Over:只看当前这一层调用的函数名,不会进入到函数内部。快捷键:F8:
Step Over:只看当前这一层调用的函数名,不会进入到函数内部。快捷键:F8
Step Into:单步调式,只要有代码的地方,都会进入,无论是共有代码还是自己的代码。快捷键:F7:
Step Into:单步调式,只要有代码的地方,都会进入,无论是共有代码还是自己的代码。快捷键:F7
Force Step Into(Step Into My Code):单步调试。只对于自己的代码,对于自己代码而言,只要有代码的地方,都可以进入,共有代码进不去。快捷键:Alt+shift+F7:
Force Step Into(Step Into My Code):单步调试。只对于自己的代码,对于自己代码而言,只要有代码的地方,都可以进入,共有代码进不去。快捷键:Alt+shift+F7
Step Out:跳出当前函数。快捷键:Shift+F8:
Step Out:跳出当前函数。快捷键:Shift+F8
Drop Frame:相当于退回到上一个调用方法。而frame,其实对应的就是一次方法调用的压栈信息。:
Drop Frame:相当于退回到上一个调用方法。而frame,其实对应的就是一次方法调用的压栈信息。
Run toCursor:跳到下一个断点。可以将光标定位到你需要查看的那一行,接着使用这个功能,代码会自动定位到你需要查看的那一行。快捷键:Alt+F9:
Run toCursor:跳到下一个断点。可以将光标定位到你需要查看的那一行,接着使用这个功能,代码会自动定位到你需要查看的那一行。快捷键:Alt+F9
Evaluate Expression:计算表达式。快捷键:Alt+F8:
可以选择某个表达式,点击这个图标或者快捷键,回车。可以使用这个操作在调试过程中计算某个表达式的值,而不用再去打印信息。

这个表达式不仅可以是一般变量或者参数,也可以是方法,当一行代码调用几个方法时,就可以通过这种方式查看某个方法的返回值。
Evaluate Expression:计算表达式。快捷键:Alt+F8
5.
在这里插入图片描述
纵窗:Rerun’xxx’,Update’tech’application,Resume Program,Pause Program,Stop’xxx’,View Breakpoints,Mute Breakpoints。

Rerun’xxx’:重新运行程序,会关闭服务器后重新启动程序。快捷键:Ctrl+F5:
Rerun'xxx':重新运行程序,会关闭服务器后重新启动程序。快捷键:Ctrl+F5
modify Run Configuration:运行配置。:
modify Run Configuration:运行配置。
Resume Program:恢复程序。在程序debug中,可以中途截至,直接跳到最后一行。快捷键:F9:
Resume Program:恢复程序。在程序debug中,可以中途截至,直接跳到最后一行。快捷键:F9
Pause Program:暂停程序和启动debug:
Pause Program:暂停程序和启动debug
Stop’xxx’:连续按两下,关闭程序。可以杀掉所有的JVM进程。有时候发现端口被占用,可以直接使用这个图标。快捷键:Ctrl+F2:
Stop'xxx':连续按两下,关闭程序。可以杀掉所有的JVM进程。有时候发现端口被占用,可以直接使用这个图标。快捷键:Ctrl+F2.
View Breakpoints:查看所有断点。:
View Breakpoints:查看所有断点。
Mute Breakpoints:哑的断点,选择这个后,所有断点变为黑色,断点全部失效,按F9则可以直接运行完程序。再次点击断点变为红色。:
Mute Breakpoints:哑的断点,选择这个后,所有断点变为黑色,断点全部失效,按F9则可以直接运行完程序。再次点击断点变为红色。

<think>好的,我现在要解决用户提出的Java编译错误,具体是“找不到符号 变量 log”。首先,我需要回顾一下用户提供的引用资料,看看有哪些可能的原因和解决方案。 根据引用[1]和[2],这个错误通常是因为log变量未被正确定义。常见的log变量可能来自Lombok的@Slf4j注解,或者手动声明的Logger。所以第一步需要检查是否正确地引入了Lombok依赖,并且在类上使用了相应的注解,比如@Slf4j。如果用户没有正确配置Lombok,或者IDE没有启用注解处理,就会导致log变量无法生成。 接下来,引用[3]提到在IDEA中调整JPS配置,添加参数-Djps.track.ap.dependencies=false。这可能是因为某些情况下IDE的编译进程没有正确识别Lombok生成的代码,调整这个参数可以解决依赖跟踪的问题。此外,引用[4]指出Lombok可能未被正确支持,特别是当使用的编译器不是Lombok支持的版本时,比如ECJ(Eclipse编译器)可能有问题。需要确认用户是否使用了支持的编译器,如javac。 用户的问题可能涉及多个方面:Lombok的依赖配置、IDE的注解处理设置、编译器的选择,以及可能的缓存问题。需要逐一排查这些可能性。例如,检查pom.xml或build.gradle中是否有Lombok依赖,确保版本正确;检查IDE中是否启用了Annotation Processors;尝试清理和重新构建项目;或者调整编译器设置。 另外,用户可能手动声明了log变量但拼写错误,或者导入了错误的Logger类。需要检查代码中是否有拼写错误,或者是否使用了正确的导入语句,比如org.slf4j.Logger和LoggerFactory。 综合这些信息,解决方案应分步骤指导用户检查依赖、IDE配置、注解处理、清理缓存等。同时,要考虑到用户可能对Lombok不熟悉,需要详细说明每个步骤的操作方法,例如如何在IDEA中启用注解处理,如何添加编译器参数等。此外,提供示例代码可以帮助用户对照自己的配置是否正确。 最后,需要验证这些解决方案的有效性,并提醒用户如果问题依旧,可能需要进一步检查项目配置或寻求更多帮助。同时,生成的相关问题可以帮助用户扩展知识,比如Lombok的其他常见问题或日志框架的选择。</think>### Java编译错误"找不到符号 变量log"解决方案 #### 一、核心原因分析 该错误表示编译器无法识别`log`变量的定义,常见于以下场景: 1. 未正确配置Lombok的@Slf4j注解 2. 缺少必要的日志框架依赖 3. IDE未启用注解处理器 4. 编译器与Lombok版本不兼容[^4] #### 二、分步解决方案 **第一步:检查Lombok配置** 1. 确保pom.xml中包含Lombok依赖: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <scope>provided</scope> </dependency> ``` 2. 在类声明处添加注解: ```java @Slf4j public class YourClass { // 可直接使用log变量 log.debug("测试日志"); } ``` **第二步:配置IDE注解处理** 1. IntelliJ IDEA设置路径: ``` File > Settings > Build > Compiler > Annotation Processors ``` 2. 勾选以下选项: - ✅ Enable annotation processing - ✅ Obtain processors from classpath **第三步:添加编译器参数** 在IDEA的`Settings > Build > Compiler > Shared build process VM options`中添加: ``` -Djps.track.ap.dependencies=false ``` (此配置可解决JPS编译进程的依赖跟踪问题[^3]) **第四步:验证编译器兼容性** 1. 确认使用JDK版本≥1.8 2.IDEA设置中检查编译器类型: ``` Settings > Build > Compiler > Java Compiler ``` 确保使用`javac`而非ECJ编译器[^4] **第五步:清理并重建项目** 1. 执行Maven命令: ```bash mvn clean install -U ``` 2.IDEA中: ``` Build > Rebuild Project ``` 3. 手动删除target目录 #### 三、验证配置有效性 创建测试类验证日志输出: ```java @SpringBootTest @Slf4j public class LogTest { @Test void testLog() { log.info("日志测试成功"); // 应看到绿色日志输出 } } ``` #### 四、扩展注意事项 1. 多模块项目中需确保父pom包含lombok依赖 2. 检查是否同时存在多个日志框架冲突 3. 旧版本IDEA(≤2020.3)建议升级到最新版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值