java調試技巧有哪些?調試不僅可以查找到應用程序缺陷所在,還可以解決缺陷。對于Java程序員來說,他們不僅要學會如何在Eclipse里面開發像樣的程序,更需要學會如何調試程序。
條件斷點
如果你不知道如何添加斷點,只需點擊左邊面板(行號前面)斷點即被創建。在調試界面中,“斷點”視圖會把所有被創建的斷點列出來。我們可以給它加一個布爾條件,也就是說,該斷點會被激活并且如果布爾條件為真,就會執行該斷點,否則將會跳過往下執行。

異常斷點
在斷點視圖中,有一個J!標記按鈕!我們可以使用該按鈕來添加一個Java異常斷點。例如,我們想讓程序在遇到空指針異常(NullPointerException)時,仍然能繼續調試,那么我們可以使用該按鈕來添加一個異常斷點!
監視點
這是一個非常好的功能,當選定的屬性訪問或修改程序時,程序會停止執行并允許進行調試。在Outline視圖中選擇一個類變量并從上下文菜單中選擇切換監視點,屬性監視點將會被創建,在斷點(Breakpoints)視圖中會把所有監視點用列表的形式顯示出來。
評估/檢查
按Ctrl+Shift+D或者Ctrl+Shift+I來顯示選定變量或者表達式的值。我們也可以給一個變量或表達式添加永久觀察點,當程序在調試時,這些觀察點就會在表達式視圖(Expression view)中顯示出來。
修改變量值
在調試過程中,我們可以修改變量值。先選好一個變量然后進入變量視圖(Variables view),根據變量類型在其對應的Value列里輸入值即可。
2Java調試工具
1. JDB
Java Debugger(JDB)是一款高效的調試器,能夠識別和修復Java程序中的bug。它也是一個用于Java類的簡單的命令行調試器。此調試器包含的Java平臺調試器體系結構(JPDA)可加強檢查和調試本地或遠程的JVM(Java虛擬機)。
JDB也是流行的Java IDE,包括NetBeans IDE和Eclipse IDE來支持Java調試,因此,非常有助于Java開發。
2. Bugloo
這款源代碼級的調試器是專門設計用于支持Scheme編譯器——Bigloo的。因此,使用Bigloo編譯器的程序可以高效地使用Bugloo調試器進行調試。當然,不僅僅是Bigloo程序,還有Java程序或者兩者的結合都可以使用此調試工具。它部署在提供了一套標準API的JVM調試架構上。此專家級軟件還包含了與GDB相同的調試模型,并提供眾多的功能來幫助我們應對當代編程語言中的功能問題。
3.Cricket Cage
又一個多功能的調試器,通過自動生成重復性bug和測試場景的JUnit測試用例來加強對Java程序的調試。因此,它可以通過擴展生成代碼來提高我們的工作效率。這更進一步地允許安裝代碼生成器和執行開發相應測試用例的程序。此外,你還可以通過整合測試用例到build.xml文件中來重復每一個構建的測試。
4. Artima SuiteRunner
這是一款發布在開源軟件許可證下的免費開源工具包,非常適合用于測試Java程序。Artima SuiteRunner可當作獨立的測試工具,用來開發支持Java API的單元測試和一致性測試。并且,它還可以和JUnit一起來執行現有的JUnit測試套件。JUnit用戶還可享受到由調試器提供的幫助以確保代碼萬無一失。它提供報告、配置文件和runpath給用戶,同時堅持實現用戶開發的JUnit測試用例。
3如何調試Java程序
1.在你覺得有錯的地方設置斷點。在代碼行數前,點擊右鍵,注意是右鍵,然后選擇Toggle Breakpoint。
你可能會問,我如何知道在哪兒放置斷點?如果對這個問題完全沒有感覺,你完全可以多打幾個斷點,單步調試直到找到異常,只是多花一點時間而已,而且這樣可以更深入了解程序的執行過程!當然,如果你大致可以直到哪里可能會出問題,或者異常信息報告類位置,那么就可以在這里設置斷點。
2.點擊Debug,如果是web程序,需要你將Tomcat或者Apache服務器以Debug模式啟動。這很重要,標準的Start模式,不能進入預先設置的斷點,也就不能達到調試的目的。
3.運行程序,當程序運行到剛才設置斷點的位置就會停下來,并且那行代碼底色會高亮顯示。這時候,你可以通過屏幕按鈕或者鍵盤控制程序的進行。下面是鍵盤對應調試的快捷鍵,如果不起作用,你可以檢查一下是不是鍵盤沖突。比如有道詞典的快捷鍵,經常會和Debud模式下的Resume沖突。
4.進入調試界面可以看到你想要的信息。
5.在Variables里面可以查看所有變量的值,比如剛才設置的斷點里面的值,右鍵ChangeValue可以更改,部分IDE支持在窗口中熱更改并執行代碼。
6.下面按鈕第一個是進入方法執行,比如你調用了其他方法,可以進入方法一步一步執行,如果點擊第二個按鈕,只會在本方法內一步一步執行,第三個按鈕時你跳出此方法,繼續執行調用這個方法的原方法。
7.執行完程序。
8.為Eclipse添加反編譯插件,更好的調試
4java程序錯誤類型
語法錯誤是指由于編程中輸入不符合語法規則而產生的。程序編譯就通不過,程序不能運行起來。此類錯誤最簡單,調試起來比較容易。
例如:表達式不完整、缺少必要的標點符號、關鍵字輸入錯誤、數據類型不匹配、循環語句或選擇語句的關鍵字不匹配等。通常,編譯器對程序進行編譯的過程中,會把檢測到的語法錯誤以提示的方式列舉出來,又稱為編譯錯誤。
語法錯誤的調試,則可以由集成開發環境提供的調試功能來實現,在程序進行編譯時,編譯器會對程序中的語法錯誤進行診斷。
編譯診斷的語法錯誤分為3中:致命錯誤、錯誤和警告。
(1)致命錯誤:這個錯誤大多是編譯程序內部發生的錯誤,發生這類錯誤時,編譯被迫中止,只能重新啟動編譯程序,但是這類錯誤很少發生,為了安全,編譯前還是先保存程序。
(2)錯誤:這個錯誤通常是在編譯時,語法不當所引起的。例如:括號不匹配,變量未聲明等。產生這類錯誤時,編譯程序會出現報錯提示,我們根據提示對源程序進行修改即可。這類錯誤是出現最多的。
(3)警告:是指被編譯程序懷疑有錯,但是不確定,有時可強行通過。例如:沒有加void聲明的主函數沒有返回值,double數據被轉換為float類型等。這些警告中有些會導致錯誤,有些可以通過。
常規解決方法:此類錯誤一般程序編譯系統會自動提示相應的錯誤地點和錯誤原因,比如哪一行代碼少了個括號等諸如此類的提示,常見的錯誤,看懂直接改正即可,如果是看不懂原因,可以將錯誤提示信息輸入搜索引擎查找一下,一般都能找到具體的解決辦法。或者有些編程平臺會本身提供一個本地或者在線的信息庫,提供詳細的錯誤原因和解決辦法,比如微軟的.NET開發平臺。
手機瀏覽
全國
19974831731





