我正在嘗試編寫一個小型內部工具,用於在Swing應用程序中調試焦點問題。現在調試器工具內置於應用程序中並通過調試命令行參數啓用。連接到另一個JVM並監聽事件?可能?
我想要做的是有一個單獨的獨立Java應用程序,可以連接到另一個JVM並監聽某些事件(在本例中爲KeyboardFocusManager上的PropertyChangeEvents)。
理想的情況下,它應該能夠做到這一點沒有任何改變被調試的應用程序,因此它可以「按需」在任何Swing應用程序調試的焦點問題中。有點像VisualVM可以連接到任何正在運行的虛擬機。
這可能嗎?什麼是一些起點? JMX?其他一些IPC機制?
對,但是我希望有一個獨立的應用程序,基本上通知您所有的焦點變化事件。是否有可能通過調試API以編程方式執行此操作? – 2011-03-23 19:03:20
焦點更改事件是程序,這就是爲什麼你必須有聽衆反應他們來說,JVM不能神奇地作出反應的東西,因此它不知道。 – 2011-03-23 19:07:28
啊。 類MethodEntryRequest在JDI(Java調試接口)做到這一點。基本上,流程是您附加到流程,獲取EventRequestManager的實例,在那裏註冊您的方法入口請求並啓用它。 你仍然需要這些調試標誌我張貼以上,但。 – MarcB 2011-03-23 19:08:45