在调试期间,我需要检查JDK中的变量,例如JTextField, JEditorPane等swing控件的类。
调试器会逐步进入这些类代码,但是当将鼠标指针移动到一个局部变量上时,它会给出"xxx在当前上下文中不是已知变量"的消息。我肯定有一个错误的调试配置条目,但我不知道是哪个:-)。
(我的NetBeans版本是6.9,但可能这个问题与版本无关)
JRE类是在调试信息关闭的情况下编译的,因此您在逐步执行源代码时不会看到任何本地变量。这样做是出于性能/大小的原因,但是如果在调试时需要查看本地变量,可以重新编译JRE类。
请参阅Javalobby上的这个线程,了解有关重新编译包含调试信息的JRE类的信息。
后续:使用替代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。