运行一个进程,发现它已启动

时间:2012-11-28 15:17:41

标签: java exe

我需要运行.exe文件,启动此文件后,一旦加载并运行进程,就会在终止之前执行一些脚本。因此,如果之前的.exe未完全加载,脚本将抛出异常。

我怎么知道.exe文件已满载?

我可以使用Timer来安排脚本执行一段时间,但这不是一个好主意,因为.exe文件可能在一些调度时间后仍未启动。

3 个答案:

答案 0 :(得分:0)

查看Apache Commons Exec,它可以处理很多流程启动的痛苦。特别要看DefaultExecuteResultHandler,它会在启动的进程退出时获得回调。只要您没有收到该回调,您启动的流程仍在运行。

注意(如果不清楚)如果您的Java进程启动了一个可执行文件,那么当该进程终止时,如果已调用Process.waitFor(),它将立即得到回调。

答案 1 :(得分:0)

作为exe文件中的最后一件事,在共享位置创建一个文件。检查其他代码中的文件。这样共享文件就可以充当锁。

答案 2 :(得分:0)

您可以定期检查正在运行的进程列表,直到您在列表中找到可执行文件 - 一旦看到它就知道它已经启动。

注意:如果可执行文件在1秒后结束,并且每隔10秒检查一次进程,则可能会错过它。