Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在ECLIPSE中调试.class文件?_Java_Eclipse_Compiler Construction_Debugging - Fatal编程技术网

Java 如何在ECLIPSE中调试.class文件?

Java 如何在ECLIPSE中调试.class文件?,java,eclipse,compiler-construction,debugging,Java,Eclipse,Compiler Construction,Debugging,我使用的是Eclipse3.5,我将src.zip附加到Eclipse中的全局设置中。 Windows->Preferences->Java->Installed JRE->rt.jar-Source attachment-..…/jdk/src.zip 我能够成功地进入java核心库.class文件并查看源代码。我正在构建一个使用LinkedList的类,并且在LinkedList类中设置了一个断点 当我调试源代码中的断点时,我的项目运行良好,但当我需要进入java核心库时,我在Eclipse

我使用的是Eclipse3.5,我将src.zip附加到Eclipse中的全局设置中。 Windows->Preferences->Java->Installed JRE->rt.jar-Source attachment-..…/jdk/src.zip

我能够成功地进入java核心库.class文件并查看源代码。我正在构建一个使用LinkedList的类,并且在LinkedList类中设置了一个断点

当我调试源代码中的断点时,我的项目运行良好,但当我需要进入java核心库时,我在Eclipse中遇到以下错误

由于缺少行号属性,无法在java.util.LinkedList中安装断点。修改编译器选项以生成行号属性

我在“首选项”中检查了编译器设置,发现所有选项均为“真”。 如果有人能帮我解决这个问题,那就太好了

提前感谢。

这提供了一个全面的检查要点列表

如果使用EclipseIDE进行编译,请遵循以下步骤

转到windows>首选项>Java>编译器屏幕。 确保选中“将行号属性添加到调试器使用的生成文件”复选框。 再次构建并尝试添加断点,希望它能为您工作。 ant构建的注意事项

如果使用ANT实用程序进行编译,请遵循以下步骤:

检查build.xml文件并确保在javac任务中将debug属性设置为true 另外,如果您使用JBoss作为应用程序服务器,那么请确保您已经为远程应用程序的套接字绑定打开了一个端口 机器连接。如果不是,则只需确保C:/jboss/bin/run.bat具有以下条目: 设置JAVA\u选项=%JAVA\u选项% -Xdebug–Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n用于打开端口5000以侦听调试/远程java应用程序的所有套接字连接。 再次构建并尝试添加断点,希望它能为您工作。
您不应该使用带有JDR src的JRE,因为JRE类不适合调试

让Eclipse搜索Java环境,然后从结果列表中选择JDK。此Java环境将正确连接src.zip,您应该能够进行调查

注意,即使是JDK类也没有完整的调试信息,所以您无法看到局部变量等


此外,“编译器设置”面板仅适用于您的代码。JRE类是预生成的,面板不会影响它们。

您可以将编译器设置为在类文件中包含调试信息,但rt.jar中的类文件不是这样编译的。您需要为rt.jar中的类重新编译所有源代码,而不是为胆小的人重新编译,或者。

工作起来很有魅力。非常感谢你。一直在找这个。嗨,大卫。。。您能告诉我如何在Java core.class中进行更改并编译它们以供我的项目使用吗?例如:我想将私有变量header修改为public,以便为我的研究目的在LinkedList类中赋值?我正在研究LinkedList的行为。。。我认为这不是一个好主意,如果你只是想访问私人变量进行研究,你可以通过反思来实现。例如,减去异常处理:List List=newlinkedlist;list.addfoo;字段头=list.getClass.getDeclaredFieldheader;header.setAccessibletrue;System.out.printlnheader.getlist;谢谢你,大卫。让我试试看。@DavidConrad。。。。。。。。你需要为rt.jar中的类重新编译所有的源代码,而不是为胆小的人。你能不能指导一下这个…指针plz。。