0

我需要运行.exe文件,并在启动此文件后在进程加载并运行后执行一些脚本,然后再终止。.exe因此,如果先前未完全加载,脚本将引发异常..

我怎么知道该.exe文件已完全加载?

我可以用它Timer来安排脚本执行到某个时间,但这不是一个好主意,因为.exe 在一些安排时间之后文件可能仍然无法启动。

4

3 回答 3

0

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

请注意(如果不清楚),如果您的 Java 进程启动一个可执行文件,它将在该进程终止时立即获得回调,前提Process.waitFor()是已被调用。

于 2012-11-28T15:24:25.890 回答
0

作为 exe 文件职责中的最后一件事,在共享位置创建一个文件。从您的其他代码中检查文件。这样该共享文件将充当锁。

于 2012-11-28T15:25:14.550 回答
0

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

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

于 2012-11-28T15:26:43.427 回答