Swing與Awt調試工具:SwingInspector

參考地址:http://www.swinginspector.com/

SwingInspector 1.2.3 for Mac OSX/Windows/Linux,兼容Java 1.6到1.8

SwingInspector是一個Java Swing/AWT用戶界面分析和調試工具,功能與firebug類似,具有強大的Swing/AWT用戶界面分析和調試相關功能。 適用於從java swing初級到高級的所有開發人員。能夠快速定位問題、UI快速調試及級分析基於Java Swing/AWT技術的軟件界面的實現原理。能夠給開發工作效率帶來大幅提升。
關於SwingInspector 1.2.3
  1. 兼容java 1.8,全面支持java 1.6、1.7和1.8,包括32和64位。
  2. 支持操作系統:Mac OSX: Intel架構,64位,Windows: 32和64位,Linux: 32和64位。
  3. 解決了所有與第3方jar包衝突問題(如:swingx)。
工具特點
  1. 具備UI組件聯動功能,在用戶界面中Ctrl+移動鼠標(Mac OSX ⌘+F12),可以在SwingInspector主界面中顯示對應組件信息,並高亮當前Component。
  2. 可以在SwingInspector組件樹中聯動到用戶界面,即雙向聯動,且不需要提供界面的源代碼
  3. Applet支持,可以定位嵌入到任何網頁中的applet界面。
  4. 強大的window捕獲功能,可以捕獲加載agent的jvm創建的所有Swing/AWT窗口(網頁中的applet,瀏覽器加載applet/webstart後啓動的console窗口),模式對話框等。
  5. 綠色,無需安裝,只需給java命令添加一行參數,即可啓動SwingInspector。
  6. 支持所有的AWT/Swing程序,netbeans、visualvm等。
  7. 強大的表達式支持,允許對選定組進執行表達式運算,實時顯示計算結果,運算結果支持屬性瀏覽和編輯。
  8. 強大的Javascript支持功能,支持用javascript實時修改用戶界面中的組件,執行腳本後立即生效。
  9. Component對象創建記錄功能,支持跟蹤對象創建過程,並直接定位到代碼行。
  10. 界面組裝記錄功能,支持跟蹤用戶界面組裝過程,並直接定位到代碼行。
  11. 高性能,核心功能採用c/c++實現,直接操縱jvm,對性能影響很小,主界面採用lazy機制,刷新組件時只更新可見viewer。屬性編輯器可直接修改選定的組件屬性,且直接生效。
  12. 可以記錄組件添加到parent時的stacktrace,可以快速定位到相應的代碼行。
  13. 簡單易用,快捷鍵與常用軟件一致(F5刷新、Alt+Left後退,Alt+Right前進等),界面非常簡潔、直觀,沒有學習成本。
下載
Windows: http://www.swinginspector.com/download/swing-inspector-windows-1.2.3.zip
Mac OSX: http://www.swinginspector.com/download/swing-inspector-macosx-1.2.3.dmg
Linux: http://www.swinginspector.com/download/swing-inspector-linux-1.2.3.tar.gz

License

SwingInspector完全免費,但禁止任何商業行爲,沒有經過我們同意,禁止以任何形式出售本軟件。禁止將本軟件捆綁到公司產品中進行銷售,否則將追究法律責任。

SwingInspector組成

  1. agent工具核心部分,採用C/C++編寫,注入到jvm進程,監視jvm各項動作,蒐集相關數據,如:jvm啓動/關閉、jvm方法調用、jvm內存分配、高亮區域繪製、jvm異常攔截、全局快捷鍵綁定、Add StackTrace記錄、對象創建StackTrace記錄、SwingInspector界面通信及jni接口實現等。
  2. SwingInspector主界面,採用Java Swing編寫,分析agent蒐集的數據,以圖形界面形式展示,如:Component Tree、提供Properties、Expressions、Javascript等視圖,界面快捷鍵綁定等,並調用agent中的jni完成相關底層操作。

截圖

主要功能如下:

1. 快速定位界面元素(Ctrl+鼠標移動)

2. 實時修改組件屬性(目前版本支持簡單屬性,如:字符,數字,boolean)

3. 修改組件首選大小

4. 強大的表達式支持,可以在計算結果修改對應組件的屬性

5. 強大javascript支持,實時操作界面元素

6. Component對象創建記錄和代碼定位功能

7. 界面組裝信息記錄功能(想知道組件是什麼時候添加到parent的嗎?那就看看Add StackTrace吧)

8. 其他功能

環境要求
  1. 操作系統:Mac OSX 10.6或更高, Linux, windows XP, 2000, 2003, vista, Windows 7, Windows 8。
  2. jvm: sun(oracle) java 1.6.x、1.7.x,ibm java 1.6.x和1.7.x,openjdk 1.6.x及更高,其他廠商jvm 未做過測試。
使用方法

1. 命令行(路徑寫全不要有空格,如果必須有請加雙引號)

Windows(x64)

java -agentpath:C:\swing-inspector-windows-1.2.3\x64\swing-inspector-agent.dll -classpath xxx.jar xxx.xxx.Main(自己的入口類)

Windows(32bit)

java -agentpath:C:\swing-inspector-windows-1.2.3\Win32\swing-inspector-agent.dll -classpath xxx.jar xxx.xxx.Main

Mac OSX(64bit)

java -agentpath:/Volumes/SwingInspector_1.2.3/libswing-inspector-agent.dylib -classpath SwingSet2.jar SwingSet2

Linux(amd64)

java -agentpath:/home/manlge/swing-inspector_1.2.3/amd64/libswing-inspector-agent.so -classpath xxx.jar xxx.xxx.Main

Linux(32bit)

java -agentpath:/home/manlge/swing-inspector_1.2.3/i386/libswing-inspector-agent.so -classpath xxx.jar xxx.xxx.Main

示例

Windows

java -agentpath:C:\SwingInspector\swing-inspector-agent.dll -classpath C:\SwingSet2.jar SwingSet2

Mac OSX

java -agentpath:/Volumes/SwingInspector_1.2.3/libswing-inspector-agent.dylib -classpath SwingSet2.jar SwingSet2

Linux

java -agentpath:/home/manlge/swing-inspector/amd64/libswing-inspector-agent.so -classpath SwingSet2.jar SwingSet2

路徑中有空格示例(加雙引號)

java "-agentpath:C:\Swing Inspector\Win32\swing-inspector-agent.dll" -classpath SwingSet2.jar SwingSet2

2. applet

3. Eclipse開發swing應用中使用

4. jvislualvm

jvisualvm.exe -J-agentpath:C:\swing-inspector-agent\x64\Release\swing-inspector-agent.dll

5. netbeans

netbeans64.exe --locale en_US -J-agentpath:C:\swing-inspector-agent\x64\Release\swing-inspector-agent.dll

系統快捷鍵

快捷鍵描述
Ctrl+F12(Mac OSX ⌘+F12)顯示/隱藏SwingInspector主界面(操作系統全局快捷鍵)
Ctrl+鼠標移動(Mac OSX ⌘+鼠標移動)捕獲用戶界面中鼠標位置組件
F5刷新組件樹
Ctrl+F查找
Alt+←後退
Alt+→前進
Ctrl+-降低窗口透明度
Ctrl++增加窗口透明度
Ctrl+Shift+P顯示屬性頁
Ctrl+Shift+E顯示錶達式頁
Ctrl+Shift+J顯示Javascript腳本頁
Ctrl+Shift+A顯示Add StackTrace頁
F11執行javascript(在javascript頁處於活動時有效)
Ctrl+Alt+←對選定的Component左移1個像素(大寫鍵按下時5個像素)
Ctrl+Alt+→對選定的Component右移1個像素(大寫鍵按下時5個像素)
Ctrl+Alt+↑對選定的Component上移1個像素(大寫鍵按下時5個像素)
Ctrl+Alt+↓對選定的Component下移1個像素(大寫鍵按下時5個像素)
Ctrl+Shift+Alt+←對選定的Component寬度減小1個像素(大寫鍵按下時5個像素)
Ctrl+Shift+Alt+→對選定的Component寬度增加1個像素(大寫鍵按下時5個像素)
Ctrl+Shift+Alt+↑對選定的Component高度減小1個像素(大寫鍵按下時5個像素)
Ctrl+Shift+Alt+↓對選定的Component高度增加1個像素(大寫鍵按下時5個像素)

聯繫我們

如果您對SwingInspector有好改進建議,請與我們聯繫
mail: [email protected]
電話:18611739701 
QQ:418850890(曼靈格)
微信:418850890/18611739701
聯繫人:Mark Liu/劉永偉
http://www.swinginspector.com/ 
地址:北京市朝陽區北苑家園紫綬園6號樓

其他

如果SwingInspector給你們公司或個人節省了成本、帶來了一定的經濟效益,希望您能爲SwingInspector的發展給予一定的資助,以推動SwingInspector更好的發展。聯繫電話:18611739701

後續開發計劃

1.2.2

  1. 窗口位置和加載保存功能 各類組件的編輯器實現,Border,顏色 右擊不同組件顯示該類組件的可操作菜單 首選項對話框,允許對SwingInspector進行配置,啓用聲音等
  2. 屬性編輯器支持過濾功能(隱藏final、隱藏static等)

1.2.3

  1. 允許當前腳本另存爲、載入腳本、自動保存加載最後保存的腳本 允許當前表達式另存爲、載入表達式。 script編輯器variable視圖,顯示上下文中的變量。 腳本編輯器語法高亮、代碼完成功能。
  2. 表達式支持以對話框型式編輯,表達式較長時,在表格中輸入不方便。
        

1.2.4

  1. 設置(顯示完整包名,狀態欄,向console輸出stacktrace) 攔截對象創建,並記錄stacktrace,在需要時,在stacktrace 視圖中顯示(通過參數設置) 組件樹中顯示變量名 Creating StackViewer
  2. 屬性瀏覽器顯示可以調用的方法

1.2.5

  1. 國際化,多語言支持(目前界面只有英文) LookAndFeel,提供多套漂亮的皮膚供選擇 agent Ctrl+F12改成鉤子實現
  2. 浮動View(類eclipse view)

1.3.0

  1. agent端移植到非windows系統linux、macosx、unix(bsd及Solaris等) 性能調優(方法調用時間、網絡請求和相應時間及數據查看)
  2. 逆向代碼生成,根據選定的界面生成源代碼(其他軟件界面設計的很好,想拿過來直接用嗎?^_^)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章