簡體   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