我最近升级到 helios,现在每次我进入一个类的构造函数(例如Cat myCat = new Cat();
)时,eclipse 调试器都会将堆栈显示为
:
要获得实际的构造函数代码,我必须跳出几次,这很烦人。每个班级都会发生这种情况,尽管有堆栈,但我从未在控制台中看到任何错误消息。我该如何解决这个问题,以便它直接进入我的类的构造函数?
这只会在第一次使用该类时发生,甚至对于与当前类位于同一 src 文件中的类也是如此。
Eclipse 在 Java 调试器首选项中有一个步骤过滤器首选项。它的默认首选项过滤掉了java.lang.ClassLoader
,但这不起作用。这可能与最近安装并切换到使用 jre7 有关。为了解决我的问题,我添加了一个过滤器来单步执行java.lang
包中的任何代码。
我认为 ClassNotFoundException 只是作为类加载的一部分发生-问题是您设置了断点以在引发这些异常时触发。我的猜测是你的 Eclipse 版本默认开启了这个断点,而旧版本没有。
查看此链接,它报告了类似的问题并提供了解决方案,即禁用该断点。
(为了教鱼等等,谷歌搜索词是“eclipse debugger launcher$appclassloader”。)
从 Eclipse 中报告的堆栈跟踪来看,似乎 aClassNotFoundException
已初始化并被抛出,您编写的应用程序是否遇到任何问题?
你有没有在类的构造函数中设置断点?您根本无法进入构造函数?
您是使用Class.forname()
还是导入来向 JRE 介绍该类?
似乎对于我的学生使用运行 openjdk 的实验室机器,解决方案是在https://stackoverflow.com/a/10525351/1449799中提到的相同首选项中添加一个步骤过滤器,但添加jdk.*