Java 在 Debug 时看不到变量(变量不显示 / 显示为 unavailable / cannot find local variable),通常不是 IDE 的问题,而是 编译或运行方式导致的。下面按常见原因给你一个排查清单。
Java 编译时如果 没有加调试信息,调试器就看不到局部变量。
Variables 窗口为空Cannot find local variable-g:nonejavac 编译时:
javac -g Test.java
Maven:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
</configuration>
</plugin>
Gradle:
compileJava.options.debug = true
compileJava.options.debugOptions.debugLevel = "source,lines,vars"
int x = 10;
System.out.println("hello");
x 没被使用 → 编译后直接消失。
✅ 解决:
volatile / 打印出来list.forEach(item -> {
int temp = item * 2; // Debug 可能看不到
});
这是 字节码结构限制,不是 Bug。
✅ 解决:
✅ 解决:
检查:
Settings → Build → Compiler → Java Compiler → Debug info = All| 检查项 | 是否 OK |
|---|---|
| 使用 Debug 模式启动 | ✅ |
编译带 -g |
✅ |
| 变量被真实使用 | ✅ |
| 没用混淆 | ✅ |
| 没热部署干扰 | ✅ |
如果你愿意,可以告诉我:
我可以直接帮你定位是哪一种原因。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。