Java 启动和停止界面_一文详解各种花里胡哨的Java调试技巧,多图预警,记得收藏...
歡迎關注專欄《Java架構筑基》——專注于Java技術的研究與分享!
Java架構筑基?zhuanlan.zhihu.com一. Java調試
1.1 Eclipse調試
1.1.1 Debug
1.1.1.1 條件斷點
斷點大家都比較熟悉,在Eclipse Java 編輯區的行頭雙擊就會得到一個斷點,代碼會運行到此處時停止。
條件斷點,顧名思義就是一個有一定條件的斷點,只有滿足了用戶設置的條件,代碼才會在運行到斷點處時停止。
在斷點處點擊鼠標右鍵,選擇最后一個"Breakpoint Properties"
斷點的屬性界面及各個選項的意思如下圖,
1.1.1.2 變量斷點
斷點不僅能打在語句上,變量也可以接受斷點,
上圖就是一個變量的打的斷點,在變量的值初始化,或是變量值改變時可以停止,當然變量斷點上也是可以加條件的,和上面的介紹的條件斷點的設置是一樣的。
1.1.1.3 異常斷點
經常遇見一些異常,然后程序就退出來了,要找到異常發生的地方就比較難了,還好可以打一個異常斷點,
上圖中我們增加了一個NullPointException的異常斷點,當異常發生時,代碼會停在異常發生處,定位問題時應該比較有幫助。
1.1.1.4 方法斷點
方法斷點就是將斷點打在方法的入口處,
方法斷點的特別之處在于它可以打在 JDK的源碼里,由于 JDK 在編譯時去掉了調試信息,所以普通斷點是不能打到里面的,但是方法斷點卻可以,可以通過這種方法查看方法的調用棧。
1.1.1.5 改變變量值
代碼停在了斷點處,但是傳過來的值不正確,如何修改一下變量值保證代碼繼續走正確的流程,或是說有一個異常分支老是進不去,能不能調試時改一下條件,看一下異常分支代碼是否正確?
在Debug 視圖的 Variables 小窗口中,我們可以看到 mDestJarName 變量的值為 " F:StudyeclipseproJarDirjarHelp,jar "
我們可以在變量上右鍵,選擇"Change Value…" 在彈出的對話框中修改變量的值,
或是在下面的值查看窗口中修改,保用Ctr+S 保存后,變量值就會變成修改后的新值了。
1.1.1.6 重新調試
這種調試的回退不是萬能的,只能在當前線程的棧幀中回退,也就說最多只能退回到當前線程的調用的開始處。
回退時,請在需要回退的線程方法上點右鍵,選擇 "Drop to Frame"
1.1.2 遠程調試
1.1.2.1 環境
tomcat,Eclipse,做遠程調試不需要任何插件。
項目:新建一個web項目
index,jsp源碼如下
<%com,syj,test,DebugTest,test("遠程調試測試"); %> Hello Remote Debug創建一個DebugTest類代碼如下:
public class DebugTest{public static void test(String content){System,out,print(content);} }1.1.2.2 tomcat配置
- 將web應用部署到Tomcat的webapp目錄下
- 修改Tomcat/bin/startup,bat文件,在最前面加上如下代碼:
注意上面命令必須寫成一行中間不能有換行,-前是空格-后是非空格,由于word原因,該文章在顯示的時候可能會有換行的情況。
- 必須先啟動Tomcat啟動tomcat/bin/startup,bat參下圖
1.1.2.3 Eclipse配置
- 在com,syj,test,DebugTest,test方法中設置斷點
- 在eclipse中配置debug,配置完成后點擊debug按鈕。如圖:
- 打開瀏覽器訪問部署的web應用,訪問index,jsp
- 當瀏覽器訪問index,jsp時,由于調用了com,syj,test,DebugTest,test,又因在test方法中設置了斷點,所以程序會被斷點攔截,如圖:
- 不需要調試的時候點擊斷開,需要調試的時候再點擊debug,非常方便,當調試過程中出現引用非本project的源碼時(例如跟蹤到tomcat里面或spring,hibernate里面),會提示找不到源碼,點擊相應提示的按鈕(到時候editor區只有一個按鈕,所以大家就不要問哪個按鈕了)可以添加源碼繼續調試,或在配置debug前就把需要的源碼都添加上,在source選項卡里面。
二. 瀏覽器調試
主要講解Google瀏覽器
2.1 谷歌瀏覽器調試
Google Chrome除了簡潔、快速,現在的Chrome的插件也非常的豐富了。而對于web開發者來說,Chrome對于JSt調試很好用,HTML5、CSS3等一些新標準的支持也是比較完善的,而且Chrome的開發者工具我個人認為真的非常好用。
2.1.1 啟用調試
怎樣打開Chrome的開發者工具?你可以直接在頁面上點擊右鍵,然后選擇審查元素:
或者在Chrome的工具中找到:
或者,你直接記住這個快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打開控制臺),或者直接按F12。界面如下圖:
不過我一般習慣與點左下角的那個按鈕,將開發者工具彈出作為一個獨立的窗口:
2.1.2 調試功能標簽頁說明
2.1.2.1 Elements標簽頁
這個就是查看、編輯頁面上的元素,包括HTML和CSS:
左側就是對頁面HTML結構的查看與編輯,你可以直接在某個元素上雙擊修改元素的屬性,或者你點右鍵選"Edit as Html"直接對元素的HTML進行編輯,或者刪除某個元素,所有的修改都會即時在頁面上得到呈現。(注:看到上面右鍵菜單的最后一個選項"審查元素"了么?這是不是說明這個開發者工具的頁面也是HTML來的呢?你點一下就知道了,嘿嘿)
你還可以對某個元素進行監聽,在JS對元素的屬性或者HTML進行修改的時候,直接觸發斷點,跳轉到對改元素進行修改的JS代碼處:
Elements標簽頁的右側可以對元素的CSS進行查看與編輯修改:
你還可以通過這里看到各CSS選擇器設置的CSS值的覆蓋情況。
下面的Metrics可以看到元素占的空間情況(寬、高、Padding、Margin神馬的):
注意到上面的Properties沒有?這個很有用,可以讓你看到元素具有的方法與屬性,比查API手冊要方便得多(要注意某些方法和屬性在IE、FireFox等其他瀏覽器下面的支持情況)。
2.1.2.2 Resources標簽頁
Resources標簽頁
Resources標簽頁可以查看到請求的資源情況,包括CSS、JS、圖片等的內容,同時還可以查看到存儲相關的如Cookies、HTML5的Database和LocalStore等,你可以對存儲的內容編輯和刪除。
這里的CSS文件有一個好玩的特性,你可以直接修改CSS文件,并且修改即時生效:
2.1.2.3 Network標簽頁
Network標簽頁
Network標簽頁對于分析網站請求的網絡情況、查看某一請求的請求頭和響應頭還有響應內容很有用,特別是在查看Ajax類請求的時候,非常有幫助。注意是在你打開Chrome開發者工具后發起的請求,才會在這里顯示的。
點擊左側某一個具體去請求URL,可以看到該請求的詳細HTTP請求情況:
我們可以在這里看到HTTP請求頭、HTTP響應頭、HTTP返回的內容等信息,對于開發、調試,都是很有用的。
2.1.2.4 Script標簽頁
很明顯,這個標簽頁就是查看JS文件、調試JS代碼的,直接看下圖的說明:
還有你可以打開Javascript控制臺,做一些其他的查看或者修改:
你甚至還可以為某一XHR請求或者某一事件設置斷點:
2.1.2.5 Timeline標簽頁
注意這個Timeline的標簽頁不是指網絡請求的時間響應情況(這個在Network標簽頁里查看),這個Timeline指的JS執行時間、頁面元素渲染時間:
點擊底部的Record就可以開始錄制頁面上執行的內容。
2.1.2.6 Profiles標簽頁
Profiles標簽頁,這個主要是做性能優化的,包括查看CPU執行時間與內存占用
2.1.2.7 Audits標簽頁
這個對于優化前端頁面、加速網頁加載速度很有用(相當與Yslow):
點擊run按鈕,就可以開始分析頁面,分析完了就可以看到分析結果了:
它甚至可以分析出頁面上樣式表中有哪些CSS是沒有被使用的:
2.1.2.8 Console標簽頁
就是Javascript控制臺了:
這個除了查看錯誤信息、打印調試信息(console,log())、寫一些測試腳本以外,還可以當作Javascript API查看用。例如我想查看console都有哪些方法和屬性,我可以直接在Console中輸入"console"并執行:
怎么樣,一目了然了吧 ?再例如我想查看日期函數都有哪些方法:
(注:注意在這里看到的某些方法和屬性是ES5新增的,記得兼容其他瀏覽器的支持情況)
2.2 IE瀏覽器調試
注意:IE版本需要在IE8或以上版本
2.2.1 啟用調試
雙擊IE瀏覽器的圖標,打開IE瀏覽器
點擊鍵盤上的"F12"鍵,或者在ie工具欄下點擊"開發人員工具",進入調試界面
2.2.2 開始JS調試
選"腳本"選項卡,找到要調試的代碼行,然后右擊添加斷點,或者直接點擊也會出現斷點。
點擊啟動調試,就會跑到設置的斷點處。"F11"可以一步一步調試,"F10"逐過程調試,"shift+F11"跳出
2.3 火狐瀏覽器調試
2.3.1 概述
在FireFox上插件庫里找到FireBug安裝即可,網上下載進行安裝。下圖是FireBug Debug 窗口。
FireBug美工用的非常普遍,公司美工妹妹用的非常熟練 呵呵,而對于我們開發人員,主要用它來Debug JS。看看官方對Debug功能的介紹。
Firebug includes a powerful JavaScript debugger that lets you pause execution at any time and see what each variable looked like at that moment, If your code is a little sluggish, use the JavaScript profiler to measure performance and find bottlenecks fast,簡而言之,FireBug 可以讓我們在任何時候debugJS 并查看變量,同時可以通過它找出JS中性能瓶頸。
2.3.2 調試步驟
下圖是如何找到Web應用的JS,激活Firebug,點Script,然后在All 旁邊選擇你要Debug的JS。
下圖是如何打斷點 基本跟Eclipse一樣,點擊行號就Ok了。
下圖是如何在斷點上設定條件,如果條件符合,就進入斷點,這個功能很不錯,特別是Debug很復雜的Function時候。
下圖是如何單步調試,跟Eclipse一樣 F11單步
下圖是查看調用的Stack,對以復雜的JS Debug很有幫助。
下圖是查看變量 基本跟EclipseDebug 一樣。
下圖是在斷點處查看變量。
有個很好用的功能,代碼行之間快速調轉,使得對上千行的JS調試很輕松。
下圖就是Performance 測試結果,使用很簡單 點Profile
還有一個Log功能比較實用,看下圖 如果你不想每次都進入斷點,用這個就再好不過了。
三. 注意
本文的調試只是常用的一些方法,只能給大家一個方向,同時由于工具版本原因,在實踐過程中若有迷茫的地方,請到網上查詢解惑
# 鏈接 Java程序員福利"常用資料分享"
總結
以上是生活随笔為你收集整理的Java 启动和停止界面_一文详解各种花里胡哨的Java调试技巧,多图预警,记得收藏...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机python3l运行_Python3
- 下一篇: 【LeetCode笔记】剑指Offer