Java 中运行宿主机上的可执行程序时,需要完全按照宿主环境的规则才能达到最大的效果。
比如使用 Java Process 启动了一个宿主机进程,如果想要关闭他,不能使用 Java Process destory() 方法,这样关掉后,宿主机程序可能还在,要使用宿主机本身的方式与此进程沟通。比如在 linux 使用 kill 命令给其发送相应的信号。
Windows 下有与 kill 命令类似的 taskkill.exe ,但是无法达到发送特定信号的目的。
那如果想在 Windows 下给进程发送 Ctrl +C 信号或者CTR + Break 信号怎么办呢?
windows-kill 可以实现此目的:
C:\Windows\System32>windows-kill.exe -l
Windows Kill 1.1.4 | Windows Kill Library 3.1.3
Availabe Signal Types
(1) (SIGBREAK) : CTR + Break
(2) (SIGINT) : CTR + C
windows使用windows-kill模拟ctrl+c信号进行进程通信