2012-09-30 38 views
13

我該如何啓用這個「運行時調試」Notch在Eclipse中提到this video如何在調試模式下運行時修改java代碼?

作爲一個測試,我希望能夠編輯以下代碼的輸出,並在運行時將其更改爲「Hello Runtime Debugging」。

public class HelloWorld { 
    public static void main(String[] args) throws InterruptedException { 
     doIt();  
    } 

    private static void doIt() throws InterruptedException { 
     for (int i = 0; i < 1000; ++i) { 
      System.out.println("Hello World " + i); 
      Thread.currentThread().sleep(100); 
     } 
    } 
} 

編輯:我修改了代碼,現在我得到我一直在尋找的結果。 Suraj Chandran的回答如下解釋它。

private static void doIt() throws InterruptedException { 
    for (int i = 0; i < 1000; ++i) { 
     print(i); 
     Thread.currentThread().sleep(100); 
    } 
} 

private static void print(int i) { 
    System.out.println("Hello Sir " + i); 
} 

回答

22

Eclipse在調試過程中支持熱交換代碼,開箱即用。

調試時,只需更改任何代碼並保存,eclipse會自動將修改後的代碼傳輸到目標虛擬機。

請注意,您不能對代碼進行結構更改,如添加新方法,更改方法簽名或添加新字段。但是你可以改變方法中的代碼。

編輯:請注意,在deubgging期間更改代碼將使該方法重新執行形式的開始,重置該方法中的局部變量。

+0

你是怎麼做到的?我把一個斷點,讓我們說,當循環計數是在23,它是「Hello World 22」「Hello World 23」我將文本更改爲別的東西,我按簡歷,現在我得到「你好別的0」它重新啓動程序?突然間,這個數字爲0。 –

+0

它會重新啓動程序,它將從開始重新執行當前方法。所以它會重新設置所有變量 –

+0

啊,解釋它。你介意把它放在答案中嗎? –

1

我可能誤解的問題,但如果你在Eclipse中調試模式(運行/調試)運行一個程序,你可以在程序運行過程中編輯方法的內容(如果JVM支持的話)。定期你不能改變導入,方法簽名,類定義等,只是方法的內容。

6

您需要確保項目>自動構建被選中。 否則它可能無法正常工作。

0

啓用Project-> Build Automatically之後,在調試模式下熱插拔代碼對我來說是好的

相關問題