參考地址: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
工具特點
- 兼容java 1.8,全面支持java 1.6、1.7和1.8,包括32和64位。
- 支持操作系統:Mac OSX: Intel架構,64位,Windows: 32和64位,Linux: 32和64位。
- 解決了所有與第3方jar包衝突問題(如:swingx)。
下載
- 具備UI組件聯動功能,在用戶界面中Ctrl+移動鼠標(Mac OSX ⌘+F12),可以在SwingInspector主界面中顯示對應組件信息,並高亮當前Component。
- 可以在SwingInspector組件樹中聯動到用戶界面,即雙向聯動,且不需要提供界面的源代碼。
- Applet支持,可以定位嵌入到任何網頁中的applet界面。
- 強大的window捕獲功能,可以捕獲加載agent的jvm創建的所有Swing/AWT窗口(網頁中的applet,瀏覽器加載applet/webstart後啓動的console窗口),模式對話框等。
- 綠色,無需安裝,只需給java命令添加一行參數,即可啓動SwingInspector。
- 支持所有的AWT/Swing程序,netbeans、visualvm等。
- 強大的表達式支持,允許對選定組進執行表達式運算,實時顯示計算結果,運算結果支持屬性瀏覽和編輯。
- 強大的Javascript支持功能,支持用javascript實時修改用戶界面中的組件,執行腳本後立即生效。
- Component對象創建記錄功能,支持跟蹤對象創建過程,並直接定位到代碼行。
- 界面組裝記錄功能,支持跟蹤用戶界面組裝過程,並直接定位到代碼行。
- 高性能,核心功能採用c/c++實現,直接操縱jvm,對性能影響很小,主界面採用lazy機制,刷新組件時只更新可見viewer。屬性編輯器可直接修改選定的組件屬性,且直接生效。
- 可以記錄組件添加到parent時的stacktrace,可以快速定位到相應的代碼行。
- 簡單易用,快捷鍵與常用軟件一致(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組成
- agent工具核心部分,採用C/C++編寫,注入到jvm進程,監視jvm各項動作,蒐集相關數據,如:jvm啓動/關閉、jvm方法調用、jvm內存分配、高亮區域繪製、jvm異常攔截、全局快捷鍵綁定、Add StackTrace記錄、對象創建StackTrace記錄、SwingInspector界面通信及jni接口實現等。
- 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. 其他功能
- 操作系統:Mac OSX 10.6或更高, Linux, windows XP, 2000, 2003, vista, Windows 7, Windows 8。
- 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
- 窗口位置和加載保存功能 各類組件的編輯器實現,Border,顏色 右擊不同組件顯示該類組件的可操作菜單 首選項對話框,允許對SwingInspector進行配置,啓用聲音等
- 屬性編輯器支持過濾功能(隱藏final、隱藏static等)
1.2.3
- 允許當前腳本另存爲、載入腳本、自動保存加載最後保存的腳本 允許當前表達式另存爲、載入表達式。 script編輯器variable視圖,顯示上下文中的變量。 腳本編輯器語法高亮、代碼完成功能。
- 表達式支持以對話框型式編輯,表達式較長時,在表格中輸入不方便。
1.2.4
- 設置(顯示完整包名,狀態欄,向console輸出stacktrace) 攔截對象創建,並記錄stacktrace,在需要時,在stacktrace 視圖中顯示(通過參數設置) 組件樹中顯示變量名 Creating StackViewer
- 屬性瀏覽器顯示可以調用的方法
1.2.5
- 國際化,多語言支持(目前界面只有英文) LookAndFeel,提供多套漂亮的皮膚供選擇 agent Ctrl+F12改成鉤子實現
- 浮動View(類eclipse view)
1.3.0
- agent端移植到非windows系統linux、macosx、unix(bsd及Solaris等) 性能調優(方法調用時間、網絡請求和相應時間及數據查看)
- 逆向代碼生成,根據選定的界面生成源代碼(其他軟件界面設計的很好,想拿過來直接用嗎?^_^)