【发布时间】:2011-11-21 16:23:20
【问题描述】:
在调试期间,我需要检查 JDK 中的变量,比如 JTextField、JEditorPane 等摇摆控件的类。
调试器会单步执行这些类代码,但是当将鼠标指针移到局部变量上时,会显示消息“xxx 在当前上下文中不是已知变量”。
我肯定有一个错误的调试配置条目,但我猜不出是哪一个:-)。
(我的 NetBeans 版本是 6.9,但这个问题可能与版本无关)
【问题讨论】:
在调试期间,我需要检查 JDK 中的变量,比如 JTextField、JEditorPane 等摇摆控件的类。
调试器会单步执行这些类代码,但是当将鼠标指针移到局部变量上时,会显示消息“xxx 在当前上下文中不是已知变量”。
我肯定有一个错误的调试配置条目,但我猜不出是哪一个:-)。
(我的 NetBeans 版本是 6.9,但这个问题可能与版本无关)
【问题讨论】:
JRE 类是在关闭调试信息的情况下编译的,因此在单步执行源代码时您不会看到任何局部变量。这样做是出于性能/大小的原因,但如果您在调试时需要查看局部变量,可以重新编译 JRE 类。
有关重新编译包含调试信息的 JRE 类的信息,请参阅 Javalobby 上的 this thread。
跟进: 使用替代 JDK 的一种方法是制作“常规”JDK 的副本并将修改后的 rt.jar 放入副本中,然后您可以添加一个 Java 平台到NetBeans 并使用修改后的 JDK 进行开发。要将另一个 Java 平台添加到 NetBeans,请单击 Tools > Java Platforms 菜单项,然后单击 Add Platform... 按钮并浏览到修改后的 JDK 文件夹并将其命名为 JDK 6 With Debug Symbols。
您需要更改项目使用的 Java 平台,方法是右键单击项目并选择 Properties > Libraries,然后使用 Java Platform 组合框选择修改后的 JDK。
【讨论】: