Java 调试:找不到源代码

2022-09-02 11:34:45

我在Eclipse上遇到了一个问题,我可以很好地运行我的程序,但是当我尝试启动调试器时,我收到此消息

Eclipse Window showing error

图片有点难以辨认,但它没有获得正常的调试窗口,而是说它正在抛出一个ClassNotFoundException,并试图卸下Launcher$ExtClassLoader的源代码。

真正让我感到困惑的是,我可以很好地运行代码,只有当我单击调试按钮时,我才有问题。

我也尝试过使用JDB在命令行中调试,但我得到了同样的错误。

到目前为止,我已经尝试重新安装Eclipse并下载(我相信是)适用于Mac OS X的正确Java开发工具。

我不知道我还能尝试什么,所以任何帮助将不胜感激。如果我能提供任何其他信息,请告诉我。


答案 1

对于动态加载的代码(例如 Maven),未找到的源可能是合法的。

我知道有三种解决方法(经过几个月的搜索):

  1. 使用调试器连接到正在运行的 JVM,您将看到代码。

  2. 从这里开始为Eclipse使用动态源查找插件:

    https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup

  3. 使用 run-jetty-run Maven 插件

    http://code.google.com/p/run-jetty-run/

我更喜欢并推荐3。它的工作原理和启动webapp的速度比jetty:run快得多。

不幸的是 2.没有帮助我,因为它有Windows路径与空格的问题。

我已经在Eclipse Bugzilla上填写了增强请求,如果您同意这个问题“找不到源代码”应该永远消失,请在这里投票:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065


答案 2

您是否有正在使用的文件的源。如果您使用的是Maven(M2Eclipse),则可以下载源代码。这可能会解决问题。enter image description here

否则,您可以手动附加源。下面介绍了如何手动附加源。

Getting the library paths

接下来,您必须附加源 -

Attaching sources

希望这有帮助