Java项目无法识别依赖库最新代码变更的调试问题求助
问题解决步骤
1. 确保编译时生成完整调试信息
- 打开Project B的Eclipse属性,进入
Java Compiler->Classfile Generation,勾选Add line number attributes to generated class files和Add local variable attributes to generated class files,重新编译并打包Jar。 - 用命令
javap -l <修改的类名>验证Jar内class文件是否包含LineNumberTable和LocalVariableTable调试信息。
2. 调整调试配置的源码关联
- 打开Project A的Tomcat调试配置(
Run -> Debug Configurations),切换到Source标签页:- 删除已添加的Project B,重新添加并勾选
Allow debugging of source code not found in the project - 将Project B移动到
Source Lookup Path的最上方,确保源码优先级高于Jar包
- 删除已添加的Project B,重新添加并勾选
3. 强制清理部署缓存
- 停止Tomcat,手动删除
tomcat/webapps/[Project A名称]下的所有文件 - 右键Tomcat服务器 ->
Clean...,选择Clean all deployed projects,再重新部署Project A
4. 验证类加载路径
- 再次确认Tomcat的
lib目录、Project A的WEB-INF/lib下无旧版Project B Jar - 在Project A中添加代码打印类加载来源,确认加载的是新版Jar:
System.out.println(你的修改类名.class.getProtectionDomain().getCodeSource().getLocation());
5. 修复Eclipse同步异常
- 右键Project A ->
Refresh,再执行Project -> Clean清理编译缓存 - 打开
Problems视图,排查是否存在未解决的编译错误或路径冲突 - 完全终止Eclipse和Tomcat进程后,重新启动
内容的提问来源于stack exchange,提问作者Jaideep
相关产品推荐
相关产品推荐

