我有一个java应用程序,当我使用CTRL-C
时它可以正确关闭,java应用程序在关闭之前保存所有数据。现在我尝试使用 Process.Close()
从我的 C# 控制台应用程序关闭此 java 应用程序,但是当我使用它时应用程序不保存任何数据,我也尝试过 Process.CloseMainWindow()
但使用这个什么也没有发生,而且Process.Kill()
但使用这个过程只是杀死,没有任何保存。
如何从 C# 控制台应用程序引发 Java 应用程序的关闭 Hook ?
最佳答案
关闭 Hook 不能由其他应用程序引发。
关闭 Hook 在以下情况运行:
- 程序正常存在。例如,调用
System.exit()
,或者 最后一个非守护线程退出。 - 虚拟机已终止。例如CTRL-C。这对应于 在 Unix 系统上kill -SIGTERM pid 或kill -15 pid。
关闭 Hook 在以下情况下不会运行:
- 虚拟机中止
- SIGKILL 信号被发送到 Unix 上的虚拟机进程 系统。例如 kill -SIGKILL pid或 kill -9 pid
- TerminateProcess 调用会发送到 Windows 系统上的进程。
关于c# - 如何从 C# 正确关闭 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310530/