亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4383 | 回復(fù): 1
打印 上一主題 下一主題

使用Eclipse調(diào)試Java程序代碼 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-10-11 19:24 |只看該作者 |倒序?yàn)g覽
創(chuàng)建Java項(xiàng)目
當(dāng)Eclipse首次啟動時進(jìn)入的是資源透視圖,在這個透視圖中可以管理項(xiàng)目、文件夾、文件和其它資源,按照Eclipse的說法,這些面板叫做視圖,一套完整的視圖叫做透視圖,在資源透視圖中,你可以使用左上方的視圖(導(dǎo)航視圖)導(dǎo)航和創(chuàng)建資源。
在Eclipse中做事之前,如創(chuàng)建Java程序,需創(chuàng)建一個Java項(xiàng)目,創(chuàng)建Java項(xiàng)目的步驟如下:
1、在導(dǎo)航視圖上點(diǎn)擊右鍵,在彈出的上下文菜單中選擇新建項(xiàng)目;
2、在新建項(xiàng)目對話框中,Eclipse提供了項(xiàng)目選項(xiàng):Java,插件開發(fā)等。因此你想要創(chuàng)建一個Java項(xiàng)目,在對話框左邊選擇Java;
3、在對話框右邊選擇Java項(xiàng)目,如果你還安裝了其它Java插件開發(fā)包,在這里也會一起列出來(如EJB,Servlet等),Eclipse默認(rèn)安裝的JDT僅支持標(biāo)準(zhǔn)Java應(yīng)用程序,因此你必須選擇Java項(xiàng)目選項(xiàng);
4、點(diǎn)擊下一步進(jìn)入新建項(xiàng)目向?qū)υ捒颍?br /> 5、首先給項(xiàng)目命一個名字,因?yàn)槭且粋簡單的“Hello, world”例子,因此這里我輸入“Hello”,點(diǎn)擊下一步,設(shè)置構(gòu)建Java項(xiàng)目的設(shè)置選項(xiàng),對于這個項(xiàng)目你不需要做任何修改即可;
6、點(diǎn)擊完成;
7、Eclipse此時會提示你這種項(xiàng)目是和Java透視圖關(guān)聯(lián)的,并詢問你是否切換到Java透視圖,選擇是。
創(chuàng)建Java類
當(dāng)你創(chuàng)建好Java項(xiàng)目后就可以開始創(chuàng)建Java程序了,盡管不是非得這么做,但這樣可以將你的Java類組織到包中,這是一次很好的實(shí)踐,通常使
用域名做為包名,這樣可以減少名字沖突的可能性,如果你沒有注冊域名,也可以使用任何方便的,唯一的hoc名,我在這里使用
org.eclipseguide,項(xiàng)目名是hello,因此包的全名就是org.eclipseguide.hello。
按照下列步驟創(chuàng)建Java程序:
1、在項(xiàng)目上點(diǎn)擊右鍵,選擇New.Class彈出新建Java類向?qū)В?br /> 2、第一個字段區(qū)域“源文件夾”默認(rèn)是項(xiàng)目的文件夾,保持默認(rèn)值;
3、在包字段區(qū)域輸入org.eclipseguide.hello;
4、在類名字段區(qū)域輸入HelloWorld;
5、在“Which Method Stubs Would You Like to Create?”區(qū)域下,選中public static void main(String[] args),新建Java類的對話框如圖1所示。

圖- 1 使用新建Java類向?qū)?chuàng)建HelloWorld類
6、點(diǎn)擊完成,新建java類向?qū)䴙槌绦虬鼊?chuàng)建一系列目錄,HelloWorld.java源文件將會放在這個包名下面。
自動創(chuàng)建的代碼包括一個main( )方法,你可以向里面添加任何功能,如打印你的Hello, world!,為了使調(diào)試變得更有趣,你需要添加一個循環(huán)打印的方法,在Eclipse中修改自動生成的代碼,如下:
public class HelloWorld {
public static void main(String[] args) {
say("Hello, world!");
}
public static void say(String msg) {
for (int i = 0; i
運(yùn)行Java程序
現(xiàn)在你已經(jīng)可以運(yùn)行這個Java程序了,在運(yùn)行Java程序時需要考慮多個事情,包括Java運(yùn)行環(huán)境,是否需要命令行參數(shù),如果不知一個類有
main(
)函數(shù)究竟該使用哪一個,在Eclipse中正確啟動一個Java程序的方法是從Eclipse菜單中選擇“運(yùn)行運(yùn)行”,此時會彈出一個對話框,讓你配
置啟動選項(xiàng),在運(yùn)行一個Java程序前,你需要創(chuàng)建一個啟動配置或從現(xiàn)有配置中選擇一個。
對于大多數(shù)簡單的Java程序而言,你不需要指定啟動配置,因此你可以使用更簡單的方法啟動程序,首先確保編輯器中HelloWorld源代碼是全部選中的,然后:
1、從Eclipse菜單中選擇運(yùn)行以...運(yùn)行Java應(yīng)用程序;
2、因?yàn)槟阋呀?jīng)對Java程序做出了修改,Eclipse會提示你在運(yùn)行Java程序前先保存一下,點(diǎn)擊確定;
3、任務(wù)視圖切換到控制臺視圖,顯示程序輸出,如圖2所示。

圖- 2 Eclipse控制臺視圖顯示HelloWorld程序運(yùn)行輸出
你可能疑惑為什么沒有單獨(dú)的步驟將.java文件編譯成.class文件,這是因?yàn)镋clipse
JDT包含了一個增量的編譯器來評估你輸入的Java程序代碼,它可以高亮顯示語法錯誤和不完整的引用,和其它Eclipse友好的特性一樣,如果你覺得
這個功能對你沒用,你完全可以關(guān)閉它,如果編譯成功,.class文件會在保存源文件時同步保存。
調(diào)試Java程序
在Eclipse中交互式運(yùn)行代碼是其最強(qiáng)大的特性之一,使用JDT調(diào)試器,你可以逐行執(zhí)行你的Java程序,檢查程序不同位置變量的值,這個過程在定位代碼中的問題時非常有用。
為了準(zhǔn)備調(diào)試,你需要在代碼中設(shè)置一個斷點(diǎn)先,以便讓調(diào)試器暫停執(zhí)行允許你調(diào)試,否則,程序會從頭執(zhí)行到尾,你就沒有機(jī)會調(diào)試了。為了設(shè)置一個斷點(diǎn),在編輯器左邊灰色邊緣雙擊,這里將say()函數(shù)位置設(shè)置為斷點(diǎn),此時將會顯示一個藍(lán)色的小點(diǎn),表示一個活動的斷點(diǎn)。
在調(diào)試器下運(yùn)行程序和運(yùn)行它非常類似,Eclipse提供了兩個選項(xiàng):選擇“使用全方位服務(wù)運(yùn)行調(diào)試”菜單使用一個快捷配置,如果默認(rèn)選項(xiàng)正確,也可以選擇“運(yùn)行以...調(diào)試Java應(yīng)用程序”。在這里我們使用后者。
確保編輯器中的HelloWorld代碼被全部選中了,然后從主菜單中選擇“運(yùn)行以...調(diào)試Java應(yīng)用程序”,Eclipse將會啟動程序,切換到調(diào)試透視圖,在斷點(diǎn)暫停執(zhí)行,如圖3所示。

圖- 3 調(diào)試HelloWorld:在第一個斷點(diǎn)執(zhí)行被暫停
調(diào)試透視圖包括多個新的視圖,都是用于調(diào)試使用的,首先,在左上方是調(diào)試視圖(不要和調(diào)試透視圖混淆了),它顯示了所有調(diào)用堆和當(dāng)前所有線程的狀態(tài),包括所有已經(jīng)執(zhí)行完畢的線程,程序運(yùn)行到斷點(diǎn)位置時,狀態(tài)顯示為暫停。
單步調(diào)試代碼
調(diào)試視圖的標(biāo)題欄是一個讓你可以控制Java程序執(zhí)行的工具欄,前面幾個按鈕和電子設(shè)備,如CD播放器的控制按鈕風(fēng)格非常類似,允許你暫停、繼續(xù)和終止程序,這些按鈕讓你可以一行一步地執(zhí)行程序代碼,鼠標(biāo)移動到每個按鈕上時都會顯示按鈕提示信息,如跟蹤,單步,返回等。
如第二個按鈕跟蹤,當(dāng)前執(zhí)行的程序代碼在編輯器中處于高亮狀態(tài):調(diào)用say()函數(shù)。如果跟蹤的話就會進(jìn)入這個函數(shù)內(nèi)部,點(diǎn)擊跟蹤后,高亮的行是首先執(zhí)行的行 — for語句。
一般情況下,你只想跟蹤你自己寫的類,對于標(biāo)準(zhǔn)類和第三方類通常沒有什么問題,是不需要跟蹤的,這時候可以使用過濾后跟蹤功能,即Step
With
Filters,選擇Window.Preferences.Java.Debug.Step過濾器,然后選擇列出的包和類,多花點(diǎn)時間設(shè)置過濾器可以有
效減輕調(diào)試難度,當(dāng)你使用普通的跟蹤調(diào)試功能時經(jīng)常會遇到許多未知錯誤,這時使用過濾跟蹤就能很好解決這一問題。
評估變量和表達(dá)式
調(diào)試視圖的右邊是一個標(biāo)簽視窗包含視圖,在這里你可以檢查和修改變量和斷點(diǎn),選擇變量標(biāo)簽頁,這個視圖顯示了當(dāng)前范圍的變量及其值,在進(jìn)入for循
環(huán)之前,這個視圖僅包括say()函數(shù)的msg參數(shù)及其值,單機(jī)單步或跟蹤按鈕進(jìn)入for循環(huán),變量視圖將會顯示循環(huán)標(biāo)志i及其值0。
有時一個Java程序有許多變量,但你僅對其中一個或幾個感興趣,為了監(jiān)視選擇的變量和表達(dá)式,你可以將它們添加到表達(dá)式視圖中的監(jiān)視列表中,例如,選擇一個變量i(在編輯器中雙擊它),點(diǎn)擊右鍵,從彈出的右鍵菜單中選擇監(jiān)視,這個變量(及其值)就會顯示在表達(dá)式視圖中。
監(jiān)視變量的一個好處是你可以檢查對象和它們的值的詳細(xì)信息,并且可以修改它們的值。返回到變量視圖,展開msg變量顯示它的屬性,它是一個char數(shù)組,展開msg字符串可以顯示它的值,例如,雙擊H,會提示你輸入一個新值,如J。
在同一個標(biāo)簽視窗中的是顯示視圖,它允許你輸入任何允許的變量或包括這些變量的實(shí)例表達(dá)式,選擇顯示視圖然后輸入:
msg.charAt(i)
為了快速評估這個表達(dá)式,你必須先選中它,然后點(diǎn)擊第二個顯示視圖工具按鈕(顯示所選文本評估結(jié)果),它在顯示視圖中顯示結(jié)果,通常最好點(diǎn)擊第一個
工具按鈕(檢查所選文本評估結(jié)果),因?yàn)樗砑颖磉_(dá)式到表達(dá)式視圖中,不管使用哪種方法,當(dāng)表達(dá)式中的變量發(fā)生變化時,顯示的值都不回自動更新。但在表達(dá)
式視圖中,你可以講表達(dá)式轉(zhuǎn)為監(jiān)視表達(dá)式,當(dāng)你單步調(diào)試代碼時就會自動更新,切換到表達(dá)式視圖,注意檢查按鈕顯示下一個表達(dá)式,點(diǎn)擊表達(dá)式然后從彈出的上
下文菜單中選擇轉(zhuǎn)換成監(jiān)視表達(dá)式,下一個表達(dá)式圖標(biāo)將會變成監(jiān)視圖標(biāo)。
我們還是回到單步調(diào)試代碼中,你前面在調(diào)用System.out.println()時留下了游標(biāo),如果你想查看System.out.println()的代碼,你可以點(diǎn)擊跟蹤,否則就點(diǎn)擊單步執(zhí)行System.out.println()函數(shù),開始下一個for循環(huán)。
在編輯器下方是連一個標(biāo)簽視窗,包括控制臺視圖,程序輸出就顯示在這里,如果你象前面說的那樣將H改為J了,那這里將會顯示Jello,
world!。你也可以點(diǎn)擊單步執(zhí)行,直到循環(huán)終止,如果你覺得這個過程太過冗長,也可以點(diǎn)擊返回快速結(jié)束say()函數(shù)返回到main()函數(shù),或者點(diǎn)
擊繼續(xù)按鈕讓Java程序運(yùn)行到終點(diǎn)。
小結(jié)
Eclipse最有用的特性之一就是它集成的調(diào)試器,它可以交互式執(zhí)行代碼,通過設(shè)置斷點(diǎn),逐行執(zhí)行代碼,檢查變量和表達(dá)式的值等功能反應(yīng)其強(qiáng)大的功能,它是一款檢查和修復(fù)Java程序代碼問題的不可替代的工具。


本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u3/104564/showart_2067818.html

論壇徽章:
0
2 [報告]
發(fā)表于 2011-11-29 14:58 |只看該作者
本帖最后由 double_life 于 2011-11-29 15:00 編輯

分析的不錯,補(bǔ)充幾點(diǎn):

Drop to Frame
  Drop to Frame功能雖然不屬于單步調(diào)試的核心,但是該功能非常的適用,它為調(diào)試人員提供了調(diào)試回退的機(jī)會。Drop to Frame可以重新跳到當(dāng)前方法的開始處重新執(zhí)行,并且所有上下文變量的值也相應(yīng)回到初始時刻,如圖所示。



Breakpoints
  Breakpoints視圖列出當(dāng)前工作區(qū)別設(shè)置的所有斷點(diǎn),如圖所示。按照功能分又可分為:
  Java Class Load Breakpoints:當(dāng)load指定的class時發(fā)生。這個在調(diào)試class load非常有用。
  Java Exception Breakpoints:當(dāng)發(fā)生異常時發(fā)生暫掛。如圖,Choose an exception支持占位符*與?。占位符*表示任何字符串,?表示任意一個字符?梢愿鶕(jù)需要決定在出現(xiàn)異常的時候是否暫掛當(dāng)前線程。



本文來自IT168,查看原文,請點(diǎn)擊:http://tech.it168.com/a2011/1124/1278/000001278928.shtml
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP