我猜您对其他两个应用程序没有控制权…如果您做到了,那还不算太糟-您可以让他们听一个套接字,看看来时套接字是否可用向上。
下一个解决方案实际上可能与语言无关。您可以通过批处理文件包装程序管理整个系统。编写一个批处理文件,该文件在启动时会创建一个文件,在停止时会删除它。Unix系统大量使用此技术-
他们经常将文件称为锁定文件。
如果只有您的应用程序会启动这些其他应用程序,那么您可以简单地跟踪是否已启动它,所以我猜测这是不可能的,或者您不会问,所以我假设用户可能通过其他机制启动了这些程序。
如果您无法控制其他应用程序的启动,甚至无法编写批处理文件来启动它们,那么您就无法做您想做的事情(请注意,这些应用程序必须始终使用该批处理文件,即使用户手动启动它们也是如此。
我要做的最后一项工作可能是获取进程状态并对其进行解析,但是您必须确切地知道PS中其他应用程序的调用方式,这并不是一件容易的事。同样,所有的Java应用程序在大多数进程状态打印输出中倾向于具有相同的准确签名,这可能使它无用。
问题是,如果这些程序之一是在应用程序外部启动的,则除非您碰巧知道它是确切的过程状态签名,而且甚至是不稳定的,否则您几乎无法识别该事实。



