在eclipse中调试具有多个类的java源文件:找不到源

在eclipse中调试具有多个类的java源文件:找不到源,java,eclipse,debugging,Java,Eclipse,Debugging,我的问题与这里描述的类似: 我还研究了以下问题:但我看不出它是如何适用于我的案例的 我刚刚开始使用Eclipse及其调试器。 下面是如何在Ubuntu12.04上使用Eclipse3.7.2和java和JavaC7版重现这个问题 启动Eclipse并选择workspace,例如主文件夹中的“Test” 开放java透视图 打开项目名为“Test”的新java项目 添加一个新的java类“Test” 我现在有以下截图: 将以下代码添加到源文件Test.java 在newtest2(

我的问题与这里描述的类似:

我还研究了以下问题:但我看不出它是如何适用于我的案例的

我刚刚开始使用Eclipse及其调试器。 下面是如何在Ubuntu12.04上使用Eclipse3.7.2和java和JavaC7版重现这个问题

  • 启动Eclipse并选择workspace,例如主文件夹中的“Test”
  • 开放java透视图
  • 打开项目名为“Test”的新java项目
  • 添加一个新的java类“Test”
我现在有以下截图:

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

  • newtest2(1)
  • 打开调试透视图
  • 开始调试:

  • 选择
    进入(F5)
现在报告错误:


非常感谢您在这个问题上提供的任何帮助。

我相信您必须先创建一个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;
    }
}

}

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

您是否尝试过清理项目?(项目->清理…并选择您的项目)我现在尝试清理,但没有帮助。。我仍然得到相同的错误。
Test2
在OP的屏幕截图中不是嵌套类。它的定义超出了
Test
的范围。对不起,我的错…我没有看到最后的括号。。看来你是对的。我可以跳过它,在进一步的步骤之后,我最终在
Test2
类中输入构造函数。。我将尝试你关于步骤过滤器的建议。也许你必须配置你的过滤器。您可以右键单击stacktrace条目并选择“filter type”或“filter package”将特定代码添加到筛选器中。是的,这似乎有效。。如果我只打开Preferences->Java->Debug->Step Filtering并选择所有包会怎么样。。这是否可取?(我现在试过了,它似乎也很管用……但我不确定它是否是正确的方法……)我不知道这里有什么预定义的列表,但我想Eclipse会提供有用的建议。你唯一需要注意的是这个列表是存在的。因此,一旦您正在调试并且需要进入其中一个软件包,您就必须暂时关闭筛选,或者关闭调试会话的特定软件包,无论您喜欢什么。