有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在eclipse中放置断点

我正在windows vista home premium 64位上使用eclipse europa(3.5),使用JDK 1.6.0_18(32位)

通常情况下,我能很好地设置断点;然而,对于一个不属于项目的特定类(这个类在一个.JAR文件中(.JAR文件是项目的一部分)),尽管我已经附加了一个源目录。JAR文件,我无法在此类中放置断点

如果我双击断点窗格(左边框),我会注意到一个类断点被放置。我想知道是否没有调试信息;然而,我们发现这个特殊的类是使用ant/javac任务,使用debug=“true”和debuglevel=“lines,vars,source”编译的。我甚至在这个类上运行jad来确认它确实包含调试信息

那么,为什么eclipse阻止我设置断点呢

编辑:为了让每个人都理解上下文,这是一个在tomcat 6.0下运行的Web应用程序。在外部启动tomcat之后,我正在从eclipse远程调试应用程序。应用程序运行良好。我试图理解上面这个类的行为,但我无法理解,因为eclipse不允许我设置BP

附言:我在这里看到一些帖子说BPs没有被击中,但在我的情况下,我无法放置BP

p.p.S:在试用JDK1.6.0_18之前,我试用了JDK1.6.0_16

谢谢你的指点


共 (3) 个答案

  1. # 1 楼答案

    使用名为Jadclipse的插件在运行时反编译jar,将断点放在调用jar方法的点上,然后按F6,您应该能够进入jar方法

  2. # 2 楼答案

    听起来Eclipse在类路径上找不到jar文件,尽管您确实说过jar文件是项目的一部分。如果正常运行应用程序会发生什么?您是否得到ClassDefNotFoundException或类似的结果

    如果查看Run/Debug配置上的选项卡,您应该能够看到运行时类路径上有哪些路径和jar文件。您还可以添加构建应用程序不需要但运行应用程序需要的jar文件

  3. # 3 楼答案

    although I have attached a source directory to this .JAR file, I am unable to place a breakpoint in this class.

    你说的是“源目录”。你确定,它是用来编译jar的同一个版本吗?如果附加的源代码版本不同,行号可能不匹配,断点也不会命中