Java 类URLClassPath中的MyEclipse隐式断点处于调试模式
我是MyEclipse想法的初学者。我正在使用它的Java 类URLClassPath中的MyEclipse隐式断点处于调试模式,java,eclipse,Java,Eclipse,我是MyEclipse想法的初学者。我正在使用它的8.6.1版本。我的问题是:当我在调试模式下执行我的程序时,MyEclipse转到sun.misc.urlclaspathclass,我必须恢复断点(按F8键)并继续执行我的程序MyEclipse停留在以下线程堆栈中的URLClassPath类中: 1. URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: 581 2. URLClassPath$J
8.6.1
版本。我的问题是:当我在调试模式下执行我的程序时,MyEclipse
转到sun.misc.urlclaspath
class,我必须恢复
断点(按F8
键)并继续执行我的程序MyEclipse
停留在以下线程堆栈中的URLClassPath
类中:
1. URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: 581
2. URLClassPath$JarLoader.ensureOpen() line: 631
3. URLClassPath$JarLoader.getJarFile(URL) line: 641
4. URLClassPath$JarLoader.ensureOpen() line: 631
1。URLClassPath$JarLoader.(URL,URLStreamHandler,HashMap)行:581
2.URLClassPath$JarLoader.ensureOpen()行:631
3.URLClassPath$JarLoader.getJarFile(URL)行:641
4.URLClassPath$JarLoader.ensureOpen()行:631
注意:当一些jar
文件存在于我的项目Build Path
中时,会发生此事件,但当我的应用程序很简单时,不会出现此问题,并且第一个断点就是我的第一个断点
为什么会发生此事件?中断的唯一原因是遇到断点。MyEclipse(或eclipse)本身不添加任何断点。我建议您再次调试应用程序,当它在sun.misc.URLClassPath中中断时,转到调试透视图中的断点选项卡,检查您设置的所有断点。如果双击每个断点,它会将您带到相关的源文件。希望您能够了解断点是如何到达那里的,但要删除断点,请右键单击断点并选择“删除”
另外,请注意,默认情况下,eclipse将在未捕获异常时中断(尽管看起来这不是您的问题)。这可以通过转到调试首选项窗口->Java->调试来更改。我已经复制了错误,无法调试应用程序。我发现解决这个问题的唯一方法是:转到“窗口->首选项->Java->调试”并禁用“暂停执行未捕获的异常” 现在可以调试应用程序,调试器将在用户断点处停止 解决方案: 处于调试状态,只需在预期调试中搜索窗口断点>
然后取消选中[捕获位置]选项。您是说调试透视图中的断点选项卡中没有断点吗?堆栈跟踪上方的直线是什么?它有暂停的原因,会说类似“Thread[main](暂停(断点在Blah中的第581行))。是的,在
断点选项卡中不存在任何行。我在原始问题中编写了调试跟踪,但显示了以下内容:Thread[main](挂起(异常文件NotFoundException))URLClassPath$JarLoader.getJarFile(URL)行:641 URLClassPath$JarLoader.access$600(URLClassPath$JarLoader,URL)行:538 URLClassPath$JarLoader$1.run()行:605 AccessController.doPrivileged(PrivilegedExceptionAction)行:不可用[本机方法]URLClassPath$JarLoader.ensureOpen()
因此,由于异常(FileNotFoundException),它正在中断。这是eclipse的默认行为,正如我在回答的末尾所提到的。起初我认为这不是您的问题,但现在您已经显示了完整的调试器输出,这肯定是导致您的程序挂起的原因。我猜可能有一个jar文件找不到,但这应该允许您跟踪它。y我们的意思是:存在对jar文件的引用,但引用的jar文件不在类路径中?我假设,因为在方法getJarFile中引发了FileNotFoundException。请尝试单击run按钮在控制台上获取异常堆栈跟踪,这可能会给您提供更多信息。除此之外,我真的无法提供更多的帮助调试器停止的ason是明确的-抛出了一个未处理的异常-但我无法帮助您跟踪异常的原因。如果您不希望调试器在未处理的异常上停止,您可以按照我的回答中的指示更改设置,但在本例中,几乎可以肯定应用程序会因异常而停止。greate回答,谢谢。+2如果我能给出。太好了!你把我从这种恼人的行为中解救出来了,我过去一直点击F8:-(我遇到了同样的问题。原因似乎在于jar名称。最初的jar eclipse应该打开的是“gwt-servlet-2.1.0.jar”,在堆栈框架中它不知何故变成了“gwt servlet.jar”,因此无法找到。