我使用的是 Eclipse 3.5,并将 src.zip 附加到 Eclipse 中的全局设置中。 Windows--> 首选项 --> Java --> 安装的 JRE --> rt.jar - 源附件 - ...../jdk/src.zip
我成功地能够进入java核心库.class文件并查看源代码。我构建了一个使用 LinkedList 的类,并在 LinkedList 类中设置了一个断点。
当我调试源代码(我的项目)中的断点运行良好,但是当我需要进入 java core lib .classes 时,我在 Eclipse 中收到以下错误
由于缺少行号属性,无法在 java.util.LinkedList 中安装断点。修改编译器选项以生成行号属性。
我检查了首选项中的编译器设置,发现所有选项均已选中。 如果有人能帮助我解决这个问题那就太好了。
提前致谢。
您可能将编译器设置为在您的类文件中包含调试信息,但 rt.jar 中的类文件不是这样编译的。您需要重新编译 rt.jar 中类的所有源代码(不适合胆小的人),或者下载 jdk 的调试版本。
此博客文章给出了要检查的要点的全面列表
如果使用 Eclipse IDE 编译,请按照以下步骤操作
- 转到
屏幕。windows > preferences > Java > compiler
- 确保选中“将行号属性添加到生成的文件(由调试器使用)”复选框。
- 再次构建并尝试添加断点希望它对您有用。
ant 构建注意事项
如果您使用 ANT 实用程序进行编译,请按照以下步骤操作:
- 检查 build.xml 文件并确保 javac 任务中的 debug 属性设置为 true
- 此外,如果您使用 JBoss 作为应用程序服务器,请确保您已经打开了用于远程套接字绑定的端口 机连接。如果没有,那么只需确保
有一个条目:C:/jboss/bin/run.bat
“”用于打开端口 5000 来侦听调试/远程 java 应用程序的所有套接字连接。set JAVA_OPTS=%JAVA_OPTS% -Xdebug –Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n
- 再次构建并尝试添加断点希望它对您有用。
您不应使用附加了 JDR src 的 JRE,因为 JRE 类不太适合调试。
让 Eclipse 搜索 Java 环境,然后从结果列表中选择 JDK。 此 Java 环境将正确附加 src.zip,您应该能够进行调查。
请注意,即使是 JDK 类也没有完整的调试信息,因此您无法看到局部变量等。
(此外,编译器设置面板仅适用于您的代码。JRE 类是预先生成的,面板不会影响它们)。