我正在尝试编写一个小型内部工具,用于调试Swing应用程序中的焦点问题。现在,调试器工具内置于应用程序中,并通过调试命令行参数启用。
我喜欢做的是拥有一个独立的独立Java应用程序,可以连接到另一个JVM并侦听某些事件(在本例中,是KeyboardFocusManager上的PropertyChangeEvents)。
理想情况下,它应该能够在不对正在调试的应用程序进行任何更改的情况下执行此操作,因此可以“按需”使用它来调试任何Swing应用程序中的焦点问题。有点像VisualVM如何连接到任何正在运行的VM。
这可能吗?有什么出发点? JMX?其他一些IPC机制?
答案 0 :(得分:4)
您可以使用java平台调试器架构(JPDA)
http://download.oracle.com/javase/6/docs/technotes/guides/jpda/examples.html
答案 1 :(得分:2)
不确定这是否涵盖了它,但是..假设应用程序是以这些标志启动的:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n
您可以使用Eclipse远程将调试器附加到进程。