1

我已经尝试了一些现有的解决方案,但它不起作用。

我有两个文件/类 First.java(其中定义了 main)和 Second.java,其中定义了简单的函数。

**First.java:**

import java.util.*;

public class First 
{
    public static void main(String[] args) 
    {   
        Second s1 = new Second();
        s1.Hello(); 
    }
}

当我在eclipse中调试上面的代码时,它给了我错误“source not found”就行了Second s1 = new Second();

但是,如果我单击“进入”,则会发生此错误。如果我在上述行中单击“跳过”,则不会发生错误;如果在后续步骤中点击“step into”,则错误不再出现,执行成功进入第二个文件“Second.java”。

所以我的问题是,有没有一种方法可以让我进入“Second.java”的构造函数而不会越过它?

如何设置源路径。

第二个.java类:

public class Second 
{
    int a;
    public Second()
    {
        this.a=100;
    }

     public void Hello()
     {
         System.out.println("hello how are you");
     }

     public int GetResult()
     {
        return a; 
     }


}
4

2 回答 2

1

问题是当您在创建第二个对象时“进入”行时,它要求类加载器加载第二个类。由于您可能没有 eclipse 设置来指向 java 源的位置,因此 eclipse 不知道 java 源代码在您的机器上用于 vm 用于加载类的所有文件的位置,包括 java.lang.ClassLoader, eclipse 会向您显示“找不到源”页面。

你可以:

  1. 将断点从 First.java 中的行Second s1 = new Second();移动到public Second()Second.java 中。然后,当您调试时,您应该在 VM 加载第二个对象后点击断点,并且您应该能够在构造函数被实例化时对其进行调试。
  2. 当您“进入”该行的断点Second s1 = new Second();并获取未找到源页面时,立即“返回”,然后再次按“进入”,这将带您进入第二类的构造函数。
  3. 单击附加源,然后浏览到 java 源文件的目录。它们通常包含在 JDK 下载中,位于 VM 安装文件夹中名为 src.zip 的文件中(对于 Sun VM)。
于 2012-05-19T03:57:05.130 回答
0

Source not found 通常意味着 Eclipse 找不到所需的文件。Second.java 在您的项目中吗?最好的办法是制作一个包,例如 me.russjr08.projects。这样 Eclipse 可以搜索包(假设所有正确的文件都在那里)并找到您想要使用的类/java 文件。

IIRC 另一种解决方案是在您的 src 文件夹中包含 Second.java

于 2012-05-19T04:08:06.740 回答