【问题标题】:How can I step into a core java class method in Eclipse?如何进入 Eclipse 中的核心 java 类方法?
【发布时间】:2012-10-05 08:06:48
【问题描述】:

您好,我将进一步研究 Java,所以我想看看程序在核心类中是如何执行的。例如,我想知道String.chatAt()是如何实现的,所以我设置了断点并尝试进入调试模式。但是我失败了,我在第二行设置了bp,当程序碰到它时,我用step into它仍然继续到第三行。

String a = "1231231241241";
char b = a.charAt(0);
System.out.println(b);

我认为它应该进入源并显示“找不到源”,然后给我一个附加源文件的机会,对吗?但是为什么进不去呢?我只能用ctrl+right点击方法进入源码并附加。

【问题讨论】:

  • 你应该附上JDK的来源,即告诉eclipse源JAVA文件在哪里。
  • 您好,我附上了 src.zip,问题是我无法进入代码。会直接跳到下一行。
  • 尝试在charAt功能上按F3。它会浏览到源吗?如果是,请尝试在里面设置断点。这里的问题意味着各个组件看到不同的jar和source,尝试验证所有版本。

标签: eclipse debugging java


【解决方案1】:

可能是您的 Eclipse 未设置为使用 JDK 运行,它可能改为使用 JRE 运行。
检查this link
另外,我可能会建议您尝试使用Maven 进行 Java 项目管理,当您掌握它时,它会让生活变得更加轻松。

【讨论】:

  • 谢谢我的朋友,其实我已经开始使用jdk/jre了。我可以在源文件中设置 bp 但程序不能在其中停止。此外,我仍然无法进入库方法。
【解决方案2】:

您很可能已激活“分步过滤”功能。

在调试时,当调试器进入您并不真正感兴趣的内部结构的琐碎类时,有时会有点烦人。因此,您可以配置“步骤过滤器”。作为步骤过滤器添加的类或包将被“Step into”操作忽略。

如果你想配置哪些类/包应该包含在步骤过滤器中,你可以去:
Window --> Preferences --> Java --> Debug --> Step Filtering
我的猜测是您在那里定义了一个java.* 包过滤器,这意味着调试器将永远不会进入以“java”开头的包中的任何类。如果您希望能够进入java.lang.String,请取消选中此包过滤器

或者,如果您想完全激活/停用分步过滤,您可以通过单击调试视图中的Use step filtering 按钮来执行此操作,如下所示:

【讨论】:

    【解决方案3】:

    为了能够查看您在项目中使用的库代码,您应该通过附加源代码和 JavaDoc 来配置构建路径。

    Source Lookup

    【讨论】:

    • 您好,谢谢,我已附上src.zip,我可以用F3查看代码。问题是即使我设置了 bp,我也无法进入源代码(在 src.zip 中)。例如在 charAt 方法中。并且程序不会停在String.java中的bp
    【解决方案4】:

    似乎您没有设置“源附件”。转到首选项 -> Java -> 已安装的 JRE。选择您使用的 JRE 并单击“编辑”,然后通过选择 jar 并单击“源附件”将源附件设置为 jdk 附带的 src.zip :)。 您可以通过按住 shift-click 选择它们来同时对所有 jar 进行此操作。

    【讨论】:

      【解决方案5】:

      例如,在这段 System.out.println("test") 代码中,如果您想进入 System 类,只需单击 System 并单击 F3,您将被重定向以附加源代码代码如果你还没有附加。只是附加了jdk的src文件夹

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-17
        • 1970-01-01
        相关资源
        最近更新 更多