Присоединиться к другой JVM и слушать события? Возможный? - PullRequest
2 голосов
/ 23 марта 2011

Я пытаюсь написать небольшой внутренний инструмент для отладки проблем фокуса в приложениях Swing. Прямо сейчас инструмент отладчика встроен в приложение и активирован с помощью аргумента командной строки отладки.

Я бы хотел иметь отдельное отдельное Java-приложение, которое может подключаться к другой JVM и прослушивать определенные события (в данном случае PropertyChangeEvents в KeyboardFocusManager).

В идеале это должно быть в состоянии сделать это без каких-либо изменений в отлаживаемом приложении, поэтому его можно использовать «по требованию» для устранения проблем с фокусировкой в ​​любом приложении Swing. Вроде как VisualVM может подключаться к любой работающей виртуальной машине.

Возможно ли это? Каковы некоторые отправные точки? JMX? Какой-то другой механизм МПК?

Ответы [ 2 ]

4 голосов
/ 23 марта 2011

Вы можете использовать архитектуру отладчика платформы Java (JPDA)

http://download.oracle.com/javase/6/docs/technotes/guides/jpda/examples.html

2 голосов
/ 23 марта 2011

Не уверен, охватывает ли это это, но .. Предполагается, что приложение запускается с такими флагами:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n

Вы можете подключить отладчик к процессу удаленно, используя Eclipse.

...