繁体   English   中英

java eclipse调试错误

[英]java eclipse debugging error

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

我有两个文件/类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中调试上述代码时,它在Second s1 = new Second();行上给我错误“找不到源” Second s1 = new Second();

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

所以我的问题是,有没有一种方法可以进入“ Second.java”的构造函数而无需跨步呢?

如何设置源路径。

Second.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; 
     }


}

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

您可以:

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

找不到源通常意味着Eclipse无法找到所需的文件。 您的项目中是否包含Second.java? 最好的办法是制作一个程序包,例如me.russjr08.projects。 这样,Eclipse可以搜索软件包(假设所有正确的文件都在其中)并找到您要使用的class / java文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM