无法单步执行java源代码。“跨入”以某种方式表现得像“跨过”
我试图研究java字符串类中的方法是如何工作的,所以我创建了一些自定义代码来调用该字符串类方法 如您所见,我在自己的代码中设置了一个断点,在java字符串类源代码中设置了另一个断点 当我处于调试模式并且在代码的第7行时,我按下了步骤 然而,eclipse并没有进入字符串类方法indexOf,而是进入了代码的第8行 为什么会这样?如何进入java字符串方法源代码 编辑1: 我已经检查过了,在问这个问题之前,是否激活了use step filter(使用步进过滤器),但它没有激活。所以我不认为使用阶跃滤波器是这里的问题 编辑2:无法单步执行java源代码。“跨入”以某种方式表现得像“跨过”,java,eclipse,debugging,Java,Eclipse,Debugging,我试图研究java字符串类中的方法是如何工作的,所以我创建了一些自定义代码来调用该字符串类方法 如您所见,我在自己的代码中设置了一个断点,在java字符串类源代码中设置了另一个断点 当我处于调试模式并且在代码的第7行时,我按下了步骤 然而,eclipse并没有进入字符串类方法indexOf,而是进入了代码的第8行 为什么会这样?如何进入java字符串方法源代码 编辑1: 我已经检查过了,在问这个问题之前,是否激活了use step filter(使用步进过滤器),但它没有激活。所以我不认为使用阶
单步执行与我自己定义的方法配合得很好很可能有一个单步过滤器,它指示调试器跳过某些类 在“首选项”对话框菜单窗口->首选项中,检查步骤筛选设置 停用使用停用所有步骤过滤器的步骤过滤器,或仅停用java.*类的过滤器 编辑另一个原因可能是您的项目正在使用JRE而不是JDK来执行。下面是一个使用Java8JRE和Java8JDK的示例 使用JRE的项目构建路径请注意jre1.8.0112 使用JDK的项目构建路径注意JavaSE-1.8 编辑2以确定使用的Java运行时库在代码中添加以下语句并在调试模式下运行
...
public static void main(String[] args) {
Stream.of(System.getProperty("sun.boot.class.path")
.split(File.pathSeparator))
.filter(s -> s.endsWith("rt.jar"))
.forEach(System.out::println);
...
你有消息来源吗?如果供应商没有提供源代码,您将如何进入源代码?附件图片右侧的@cup是java string class的源代码。java.lang.string class实现此方法,eclipse显示其源代码。我试着在eclipse中加入,结果成功了fine@JaySmith是啊,看来不是我很倒霉就是我很笨。我在stackoverflow中搜索过,这个问题似乎并不经常出现。按Run tab并选择Step into option,然后再询问。因此,我已经检查了use Step filter是否已激活,并且没有激活,因此我认为use Step filter不是问题所在。不过,还是要谢谢你的帮助@我添加了另一个可能的原因。嗨,次优,我已经检查了我的EclipseIDE设置,项目的构建路径中有JDK,而不是JRE,所以我认为这不是问题所在。真的很感谢你的帮助,真是感激不尽@CaptainAmerica您可以添加代码以获取使用过的运行库吗。也许这会给它带来一些启示。@CaptainAmerica不客气。我试着回报一些东西,为了我从中得到的东西-
...
public static void main(String[] args) {
Stream.of(System.getProperty("sun.boot.class.path")
.split(File.pathSeparator))
.filter(s -> s.endsWith("rt.jar"))
.forEach(System.out::println);
...