程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用Eclipse調試Java程序代碼

使用Eclipse調試Java程序代碼

編輯:關於JAVA

創建Java項目

當Eclipse首次啟動時進入的是資源透視圖,在這個透視圖中可以管理項目、文 件夾、文件和其它資源,按照Eclipse的說法,這些面板叫做視圖,一套完整的視圖叫做透視圖,在資源 透視圖中,你可以使用左上方的視圖(導航視圖)導航和創建資源。

在Eclipse中做事之前,如創 建Java程序,需創建一個Java項目,創建Java項目的步驟如下:

1、在導航視圖上點擊右鍵,在彈 出的上下文菜單中選擇新建項目;

2、在新建項目對話框中,Eclipse提供了項目選項:Java,插 件開發等。因此你想要創建一個Java項目,在對話框左邊選擇Java;

3、在對話框右邊選擇Java項 目,如果你還安裝了其它Java插件開發包,在這裡也會一起列出來(如EJB,Servlet等),Eclipse默認 安裝的JDT僅支持標准Java應用程序,因此你必須選擇Java項目選項;

4、點擊下一步進入新建項 目向導對話框;

5、首先給項目命一個名字,因為是一個簡單的“Hello, world”例子 ,因此這裡我輸入“Hello”,點擊下一步,設置構建Java項目的設置選項,對於這個項目你 不需要做任何修改即可;

6、點擊完成;

7、Eclipse此時會提示你這種項目是和Java透視 圖關聯的,並詢問你是否切換到Java透視圖,選擇是。

創建Java類

當你創建好Java項目後 就可以開始創建Java程序了,盡管不是非得這麼做,但這樣可以將你的Java類組織到包中,這是一次很好 的實踐,通常使用域名做為包名,這樣可以減少名字沖突的可能性,如果你沒有注冊域名,也可以使用任 何方便的,唯一的hoc名,我在這裡使用org.eclipseguide,項目名是hello,因此包的全名就是 org.eclipseguide.hello。

按照下列步驟創建Java程序:

1、在項目上點擊右鍵,選擇 New.Class彈出新建Java類向導;

2、第一個字段區域“源文件夾”默認是項目的文件 夾,保持默認值;

3、在包字段區域輸入org.eclipseguide.hello;

4、在類名字段區域輸 入HelloWorld;

5、在“Which Method Stubs Would You Like to Create ”區域下, 選中public static void main(String[] args),新建Java類的對話框如圖1所示。

圖- 1 使用新建Java類向導創建HelloWorld類

6、點擊完成,新建java類向導將會為程序包創 建一系列目錄,HelloWorld.java源文件將會放在這個包名下面。

自動創建的代碼包括一個main( )方法,你可以向裡面添加任何功能,如打印你的Hello, world!,為了使調試變得更有趣,你需要添加一 個循環打印的方法,在Eclipse中修改自動生成的代碼,如下:

public class  HelloWorld {
 

public static void main(String[] args) {
say ("Hello, world!");
}
public static void say(String msg) {
for  (int i = 0; i < 3; i++) {
System.out.println(msg);
}
}
}

運行Java程序

現在你已經可以運行這個Java程序了,在運行Java程序時需要考慮 多個事情,包括Java運行環境,是否需要命令行參數,如果不知一個類有main( )函數究竟該使用哪一個 ,在Eclipse中正確啟動一個Java程序的方法是從Eclipse菜單中選擇“運行 運行”, 此時會彈出一個對話框,讓你配置啟動選項,在運行一個Java程序前,你需要創建一個啟動配置或從現有 配置中選擇一個。

對於大多數簡單的Java程序而言,你不需要指定啟動配置,因此你可以使用更 簡單的方法啟動程序,首先確保編輯器中HelloWorld源代碼是全部選中的,然後:

1、從Eclipse 菜單中選擇運行 以...運行 Java應用程序;

2、因為你已經對Java程序做出了修 改,Eclipse會提示你在運行Java程序前先保存一下,點擊確定;

3、任務視圖切換到控制台視圖 ,顯示程序輸出,如圖2所示。

圖- 2 Eclipse控制台視圖顯示HelloWorld程序運行輸出

你可能疑惑為什麼沒有單獨的步驟 將.java文件編譯成.class文件,這是因為Eclipse JDT包含了一個增量的編譯器來評估你輸入的Java程序 代碼,它可以高亮顯示語法錯誤和不完整的引用,和其它Eclipse友好的特性一樣,如果你覺得這個功能 對你沒用,你完全可以關閉它,如果編譯成功,.class文件會在保存源文件時同步保存。

調試 Java程序

在Eclipse中交互式運行代碼是其最強大的特性之一,使用JDT調試器,你可以逐行執行 你的Java程序,檢查程序不同位置變量的值,這個過程在定位代碼中的問題時非常有用。

為了准 備調試,你需要在代碼中設置一個斷點先,以便讓調試器暫停執行允許你調試,否則,程序會從頭執行到 尾,你就沒有機會調試了。為了設置一個斷點,在編輯器左邊灰色邊緣雙擊,這裡將say()函數位置設置 為斷點,此時將會顯示一個藍色的小點,表示一個活動的斷點。

在調試器下運行程序和運行它非 常類似,Eclipse提供了兩個選項:選擇“使用全方位服務運行 調試”菜單使用一個 快捷配置,如果默認選項正確,也可以選擇“運行 以...調試 Java應用程序 ”。在這裡我們使用後者。

確保編輯器中的HelloWorld代碼被全部選中了,然後從主菜單中 選擇“運行 以...調試 Java應用程序”,Eclipse將會啟動程序,切換到調試 透視圖,在斷點暫停執行,如圖3所示。

圖- 3 調試HelloWorld:在第一個斷點執行被暫停

調試透視圖包括多個新的視圖,都是用於調 試使用的,首先,在左上方是調試視圖(不要和調試透視圖混淆了),它顯示了所有調用堆和當前所有線 程的狀態,包括所有已經執行完畢的線程,程序運行到斷點位置時,狀態顯示為暫停。

單步調試 代碼

調試視圖的標題欄是一個讓你可以控制Java程序執行的工具欄,前面幾個按鈕和電子設備, 如CD播放器的控制按鈕風格非常類似,允許你暫停、繼續和終止程序,這些按鈕讓你可以一行一步地執行 程序代碼,鼠標移動到每個按鈕上時都會顯示按鈕提示信息,如跟蹤,單步,返回等。

如第二個 按鈕跟蹤,當前執行的程序代碼在編輯器中處於高亮狀態:調用say()函數。如果跟蹤的話就會進入這個 函數內部,點擊跟蹤後,高亮的行是首先執行的行 — for語句。

一般情況下,你只想跟蹤 你自己寫的類,對於標准類和第三方類通常沒有什麼問題,是不需要跟蹤的,這時候可以使用過濾後跟蹤 功能,即Step With Filters,選擇Window.Preferences.Java.Debug.Step過濾器,然後選擇列出的包和 類,多花點時間設置過濾器可以有效減輕調試難度,當你使用普通的跟蹤調試功能時經常會遇到許多未知 錯誤,這時使用過濾跟蹤就能很好解決這一問題。

評估變量和表達式

調試視圖的右邊是一 個標簽視窗包含視圖,在這裡你可以檢查和修改變量和斷點,選擇變量標簽頁,這個視圖顯示了當前范圍 的變量及其值,在進入for循環之前,這個視圖僅包括say()函數的msg參數及其值,單機單步或跟蹤按鈕 進入for循環,變量視圖將會顯示循環標志i及其值0。

有時一個Java程序有許多變量,但你僅對其 中一個或幾個感興趣,為了監視選擇的變量和表達式,你可以將它們添加到表達式視圖中的監視列表中, 例如,選擇一個變量i(在編輯器中雙擊它),點擊右鍵,從彈出的右鍵菜單中選擇監視,這個變量(及 其值)就會顯示在表達式視圖中。

監視變量的一個好處是你可以檢查對象和它們的值的詳細信息 ,並且可以修改它們的值。返回到變量視圖,展開msg變量顯示它的屬性,它是一個char數組,展開msg字 符串可以顯示它的值,例如,雙擊H,會提示你輸入一個新值,如J。

在同一個標簽視窗中的是顯 示視圖,它允許你輸入任何允許的變量或包括這些變量的實例表達式,選擇顯示視圖然後輸入:

msg.charAt(i)

為了快速評估這個表達式,你必須先選中它,然後點擊第二個顯示視圖工 具按鈕(顯示所選文本評估結果),它在顯示視圖中顯示結果,通常最好點擊第一個工具按鈕(檢查所選 文本評估結果),因為它添加表達式到表達式視圖中,不管使用哪種方法,當表達式中的變量發生變化時 ,顯示的值都不回自動更新。但在表達式視圖中,你可以講表達式轉為監視表達式,當你單步調試代碼時 就會自動更新,切換到表達式視圖,注意檢查按鈕顯示下一個表達式,點擊表達式然後從彈出的上下文菜 單中選擇轉換成監視表達式,下一個表達式圖標將會變成監視圖標。

我們還是回到單步調試代碼 中,你前面在調用System.out.println()時留下了游標,如果你想查看System.out.println()的代碼,你 可以點擊跟蹤,否則就點擊單步執行System.out.println()函數,開始下一個for循環。

在編輯器 下方是連一個標簽視窗,包括控制台視圖,程序輸出就顯示在這裡,如果你象前面說的那樣將H改為J了, 那這裡將會顯示Jello, world!。你也可以點擊單步執行,直到循環終止,如果你覺得這個過程太過冗長 ,也可以點擊返回快速結束say()函數返回到main()函數,或者點擊繼續按鈕讓Java程序運行到終點。

小結

Eclipse最有用的特性之一就是它集成的調試器,它可以交互式執行代碼,通過設置 斷點,逐行執行代碼,檢查變量和表達式的值等功能反應其強大的功能,它是一款檢查和修復Java程序代 碼問題的不可替代的工具。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved