代码之家  ›  专栏  ›  技术社区  ›  Sandro

如何确定应用程序何时使用Java反射完成

  •  2
  • Sandro  · 技术社区  · 15 年前

    我有一个Java程序,它使用反射来查找和调用另一个Java程序的主(String)[ARG]方法。另一个程序通常是一个Swing应用程序,它倾向于生成自己的线程。我想知道是否有一种方法可以确定其他“程序”何时终止。我不确定是否有任何检测方法,因为它与宿主程序在同一空间中执行。当前的方法只是检查打开的任何帧是否不是我们自己的,而不是最伟大的解决方案。在进程中运行子程序也不是一个真正的选项,因为我们可以访问它。

    编辑: 看来答案是双重的。首先创建一个线程组,并在该组成员的线程中启动子程序。然后确保检查frame.getframes()是否有任何帧属于子级。

    谢谢您, ——桑德罗

    2 回复  |  直到 15 年前
        1
  •  1
  •   Michael Borgwardt    15 年前

    单独启动子应用程序 ThreadGroup (最好将其设置为守护进程线程组)并定期检查它是否包含任何正在运行的线程或子组。

        2
  •  0
  •   akarnokd    15 年前

    如果您有方法发现此子应用程序正在使用的窗口,您可以附加适当的窗口侦听器并等待所有关闭事件。

    编辑:

    使用事件监听器方法至少不允许您不断地循环和查询帧。 对于生成线程的情况,我没有任何线索。如果有一种方法可以跟踪你自己的线程并发现应用程序的线程,你可以做同样的循环为帧。

    编辑2:

    我想到的是在自己身上使用JMX来获取线程和其他信息,但我不太了解JMX。