Java调试:找不到源代码

时间:2012-02-28 01:15:12

标签: java eclipse macos debugging

我遇到Eclipse问题,我可以运行我的程序,但是当我尝试启动调试器时,我收到此消息

Eclipse Window showing error

图片有点难以理解,但它没有获得正常的调试窗口,而是说它抛出了一个ClassNotFoundException,并且正在尝试显示Launcher $ ExtClassLoader的源代码。

让我感到困惑的是,我可以正常运行代码,只有当我点击调试按钮时我才会遇到问题。

我也试过在JDB的命令行调试,我也遇到了同样的错误。

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

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

3 个答案:

答案 0 :(得分:44)

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

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

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

  2. 从此处使用Eclipse的Dynamic Source Lookup插件:

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

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

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

  4. 我更喜欢并推荐3.它比jetty工作和启动webapp要快得多:运行。

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

    我已经在Eclipse Bugzilla上填写了一个增强请求,如果你同意这个问题“Source not found”应该永远消失,请在这里投票:

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

答案 1 :(得分:8)

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

否则您可以手动附加您的来源。以下是手动附加源的方法。

Getting the library paths

接下来你必须附上来源 -

Attaching sources

希望这有帮助

答案 2 :(得分:0)

“找不到源”是一个红色的鲱鱼 - 可能根本无法访问抛出错误的源,因为它深入调试器的类加载器的内容。

更好的问题是,“为什么找不到scottrice.ChessPuzzles.ChessPuzzleDriver?”目前发生在我身上的唯一可能性是调试配置中可能有些奇怪。您是否通过右键单击具有main()的文件并选择“调试为” - >来调试程序? “Java应用程序”?