Java 如何处理JVM源代码中的未知变量名?

Java 如何处理JVM源代码中的未知变量名?,java,debugging,jvm,debug-symbols,Java,Debugging,Jvm,Debug Symbols,在调试代码和跟踪JVM代码时,我经常遇到一种情况,即变量无法监视 显然,这是因为变量名已从编译代码中删除 怎么办?有JVM的调试版本吗 在下面的屏幕截图中,很明显,在鼠标悬停时不监视该变量-仅显示类型。同时,可以看到,在Eclipse的variables视图中,该变量由arg0名称标识 这意味着JTree.class在编译时没有调试信息。你所要做的就是用调试信息重新编译它。为此:复制JTree源代码,并将其粘贴到JTree.java文件中。打开cmd并键入: javac -g JTree.jav

在调试代码和跟踪JVM代码时,我经常遇到一种情况,即变量无法监视

显然,这是因为变量名已从编译代码中删除

怎么办?有JVM的调试版本吗

在下面的屏幕截图中,很明显,在鼠标悬停时不监视该变量-仅显示类型。同时,可以看到,在Eclipse的variables视图中,该变量由arg0名称标识


这意味着JTree.class在编译时没有调试信息。你所要做的就是用调试信息重新编译它。为此:复制JTree源代码,并将其粘贴到JTree.java文件中。打开cmd并键入:

javac -g JTree.java
这将生成许多.class文件。将它们全部复制回rt.jar 在修改rt.jar时,您可能会遇到另一个进程正在使用它的错误,请关闭eclipse,然后重试。
现在,您应该能够按照预期调试这个JTree类了。

导航到:窗口->显示视图->显示并键入System.out.printlngetLastPathComponent;在Eclipse底部显示的文本区域中。然后点击“从左到右执行所选文本”按钮查看值。或者,由于这是Eclipse,您可以找到java运行时jar并附加源代码。他有源代码,问题是.class文件中缺少调试符号。实际上,我认为他是she,她在使用jdk,否则她就没有源代码了。