【问题标题】:Debugging java source file with multiple classes in eclipse: Source not found在eclipse中调试具有多个类的java源文件:找不到源
【发布时间】:2013-11-18 16:24:21
【问题描述】:

我遇到了与此处描述的问题类似的问题: Eclipse and Java - source not found

我还查看了以下问题:Eclipse java debugging: source not found,但我看不出它如何应用于我的案例..

我刚刚开始使用 Eclipse 及其调试器。 以下是如何在带有 java 和 javac 版本 7 的 Ubuntu 12.04 上使用 Eclipse 3.7.2 重现该问题。

  • 启动 Eclipse 并选择工作区,例如主文件夹中的“Test”。
  • 打开 java 透视图
  • 使用项目名称“Test”打开新的 java 项目
  • 添加一个新的 java 类“Test”

我现在有以下截图:

  • 将以下代码添加到源文件Test.java

  • new Test2(1)处设置断点
  • 打开调试视角
  • 开始调试:

  • 选择Step Into (F5)

现在报错:

对此问题的任何帮助表示赞赏..

【问题讨论】:

  • 你试过清理项目了吗? (项目->清理...并选择您的项目)
  • 我现在尝试清洁,它没有帮助..我仍然得到同样的错误..

标签: java eclipse debugging


【解决方案1】:

Launcher$AppClassLoader 类属于 JRE,即将加载您的类。它与您自己的类的源代码无关。如果你更进一步,你将到达你自己的班级Test2。如果您转到调试按钮栏的末尾(“步入”按钮右侧的四个按钮),则有一个“使用步骤过滤器”按钮。激活它以避免进入 JRE 类的不必要步骤。

【讨论】:

  • 谢谢.. 看来你是对的。我可以跳过它,经过更多步骤后,我终于在Test2 类中输入了构造函数。我会尝试你对步骤过滤器的建议。
  • 也许你必须配置你的过滤器。您可以右键单击堆栈跟踪条目并选择“过滤器类型”或“过滤器包”以将特定代码添加到过滤器。
  • 是的,这似乎可行.. 如果我只打开 Preferences->Java->Debug->Step Filtering 并选择所有包.. 这有什么建议吗? (我现在试过了,它似乎也有效..但我不确定这是否是正确的方法..)
  • 我不知道你有什么预定义的列表,但我猜 Eclipse 会提供有用的建议。您唯一需要注意的是这个列表存在。因此,一旦您正在调试并需要进入其中一个包,您必须暂时关闭过滤或关闭调试会话的特定包,无论您喜欢什么。
【解决方案2】:

我相信您必须先创建一个 Test 实例,然后才能访问 Test 中的嵌套类 Test2。 Eclipse 应该在你的语句中抛出一个错误,比如“没有 Test2 的实例是可访问的”或类似的东西。将您的代码更改为如下所示,看看它是否有效。

public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
        Test mTest = new Test();
        Test2 nTest = mTest.new Test2(1);
}

class Test2{
    int i;

    Test2(int i){
        this.i = i;
    }
}

}

【讨论】:

  • Test2 不是 OP 屏幕截图中的嵌套类。它是在Test 范围之外定义的。
  • 对不起,我的错...我没有看到最后的括号
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 2014-02-03
  • 2012-04-13
  • 2010-12-29
  • 2012-07-04
  • 1970-01-01
相关资源
最近更新 更多