【问题标题】:Why does the Eclipse debugger give the error "Source not found" seemingly without reason?为什么 Eclipse 调试器看似无缘无故地给出错误“找不到源”?
【发布时间】:2013-02-01 13:52:42
【问题描述】:

当我在 Eclipse 中调试时,经常会发生调试器崩溃,显示错误消息“未找到源”(其下方是带有文本“编辑源查找路径”的按钮)。我之前在网上搜索过这个问题的解释/解决方案,但没有找到任何帮助。

但是,我现在已经弄清楚我的情况发生了什么:错误发生在逐行执行代码,然后跳出正在运行的代码块时。我不知道术语,但我猜许多应用程序可能会在某个时候进入“待机模式”,此时没有任何代码正在运行。一个示例是等待鼠标单击的图形应用程序。在 MouseListener 方法中的断点处停止,然后退出它(进入“待机模式”)将导致我的情况出现错误。

我在这个问题的底部提供了一个 MWE。当我在该行放置断点时发生错误

System.out.println("You clicked!");

并使用 F6(“Step Over”)逐行退出方法。如果我在侦听器的最后一行按 F8(“Resume”)而不是 F6,调试器不会崩溃,一切都很好。

我的问题是:为什么 Eclipse 会在这种情况下做出如此严重的崩溃?我知道源代码中没有一行可以说程序控件在下面的示例中离开侦听器后“步入”,但是为什么不直接进入“待机模式”而不抱怨呢?我可以以某种方式停用此错误,以防止我的调试会话如此频繁地过早结束吗?还是我只需要记住按 F8 而不是 F6 会导致崩溃?

package app;

import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;


public class TestFrame extends JFrame {
    public TestFrame() {
        getContentPane().setPreferredSize(new Dimension(200, 200));
        getContentPane().addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("You clicked!");
            }
        });
        pack();
    }

    public static void main(String[] args) {
        JFrame testFrame = new TestFrame();
        testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        testFrame.setVisible(true);
    }
}

【问题讨论】:

标签: java eclipse debugging


【解决方案1】:

Eclipse 不会崩溃。您正在尝试进入一个方法,其中 eclipse 不知道在哪里可以找到源 (*.java) 文件并通知您这一点。这是告诉日食在哪里看的方法。去

Window -> Preferences -> Java -> Installed JREs,选择您正在使用的 JRE 并点击编辑

在此处,选择您看到的列表中的所有 jar 文件,然后单击 Source Attachment...

在出现的窗口中,选择填充 src.zip,它位于您的 JDK 文件夹中(如果您在安装 JDK 时没有取消选中它)。在我现在使用的机器上,就是

C:\Program Files\Java\jdk1.7.0_07\src.zip.

保存所有更改(可能重新启动 eclipse),您将不会再看到该错误。

【讨论】:

  • 在浏览了 2 小时关于此错误的帖子后。这是立即起作用的。谢谢好先生。上帝保佑你。
【解决方案2】:

转到 窗口->首选项->java->已安装的jres 并删除jre,然后执行“添加” 并寻找 JDK 而不是 JRE!

【讨论】:

  • 有趣!我列出了 JDK JRE,并选择了 JDK,但只有在真正从列表中删除 JRE 之后,它才起作用!谢谢。
【解决方案3】:

“找不到源”错误可以通过提供类文件的源来解决,即 .java 文件,以便它可以导航到源文件。否则,您可以使用反编译器直接打开 .class 文件。

转到 Eclipse-->Help-->Eclipse MarketPlace -->搜索反编译器和 安装它。

现在,问题可以解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 2011-12-19
    相关资源
    最近更新 更多