2012-05-19 107 views
1

我嘗試了一些現有的解決方案,但它不起作用。java eclipse調試錯誤

我有兩個文件/類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.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; 
    } 


} 
+0

有人嗎? –

+0

Second.java的定義在哪裏?它在另一個Jar文件中嗎?另一個項目? –

回答

1

問題是,當你創建第二個對象時,「步入」行了,它要求類加載器加載第二類。由於您可能沒有安裝eclipse來指向java源文件的位置,因此eclipse並不知道vm用來加載該類的所有文件,包括java.lang.ClassLoader,和日食顯示你'源未找到'頁面。

您可以:

  1. 移動破發點從線Second s1 = new Second();在First.java到public Second()在Second.java。然後當你調試的時候,你應該在之後點擊斷點第二個對象已經被虛擬機加載了,你應該能夠在實例化的時候調試構造函數。
  2. 當你進入'Second s1 = new Second();行的中斷點,並得到源未找到頁面時,立即'step return',然後再次按'step into',這應該帶你到第二類的構造函數。
  3. 單擊附加源,並瀏覽到Java源文件的目錄。它們通常包含在JDK下載中,並位於VM的安裝文件夾(用於Sun VM)中的名爲src.zip的文件中。
0

未找到源通常意味着Eclipse無法找到所需的文件。 Second.java是否在您的項目中?最好的做法是製作一個包,比如me.russjr08.projects。這樣Eclipse可以搜索整個包(假設所有正確的文件都在那裏)並找到要使用的類/ java文件。

IIRC另一種解決方案是在您的src文件夾中包含Second.java