【问题标题】:Java process : Wait for parent process exitsJava进程:等待父进程退出
【发布时间】:2016-03-02 23:02:58
【问题描述】:

我的 java 应用程序由父进程(windows)作为其子进程启动。

父进程将其环境变量中的PID发送给子进程。

在 Windows API 中,有一个WairForSingleObject 允许子进程等待父进程退出(包括进程终止)。

如何在JAVA中监控父进程的退出?

【问题讨论】:

  • 当父进程终止时,子进程不会被终止吗?

标签: java


【解决方案1】:

您可以使用JNA 来使用WaitForSingleObject。您所要做的就是将JNA 库添加到您的类路径:

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>4.2.1</version>
</dependency>
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna-platform</artifactId>
    <version>4.2.1</version>
</dependency>

之后你就可以打电话了:

WinNT.HANDLE handle = Kernel32.INSTANCE.OpenProcess(0, false, pidOfAnyProcess);
Kernel32.INSTANCE.WaitForSingleObject(handle, Kernel32.INFINITE);

【讨论】:

  • 谢谢,更正一点:子进程必须在OpenProcess等待时获得WinNT.SYNCHRONIZE访问权限。
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
  • 2011-07-05
相关资源
最近更新 更多