[英]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向您顯示“找不到源”頁面。
您可以:
Second s1 = new Second();
行Second s1 = new Second();
移動斷點Second s1 = new Second();
在First.java中將public Second()
。 public Second()
在Second.java中公開。 然后,當您進行調試時,您應該在VM加載Second對象后達到斷點,並且應該能夠在實例化構造函數時對其進行調試。 Second s1 = new Second();
點Second s1 = new Second();
處的斷點時Second s1 = new Second();
並找到“找不到源”頁面,立即“逐步返回”,然后再次按“逐步進入”,這將帶您進入第二類的構造函數。 找不到源通常意味着Eclipse無法找到所需的文件。 您的項目中是否包含Second.java? 最好的辦法是制作一個程序包,例如me.russjr08.projects。 這樣,Eclipse可以搜索軟件包(假設所有正確的文件都在其中)並找到您要使用的class / java文件。
IIRC的另一種解決方案是在您的src文件夾中包含Second.java
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.