如何从C#one正确关闭java应用程序
我有java应用程序,当我使用CTRL-C
时正确关闭,java应用程序在关机前保存所有数据。 现在我尝试使用Process.Close()
从我的C#控制台应用程序关闭这个java应用程序,但是当我使用它时应用程序不保存任何数据,我也尝试过Process.CloseMainWindow()
但是使用它没有发生任何事情,而且Process.Kill()
但是使用这个进程刚刚杀死,没有任何问题。
如何从C#控制台应用程序中提高java应用程序的关闭挂钩?
另一个应用程序无法引发关闭挂钩。
关闭钩子运行时:
- 程序通常存在。 例如,调用
System.exit()
,或者退出最后一个非守护程序线程。 - 虚拟机终止。 例如CTRL-C。 这对应于Unix系统上的kill -SIGTERM pid或kill -15 pid。
在以下情况下,关闭钩子不会运行:
- 虚拟机中止
- SIGKILL信号被发送到Unix系统上的虚拟机进程。 例如杀死-SIGKILL pid或kill -9 pid
- TerminateProcess调用将发送到Windows系统上的进程。