关闭从Java应用程序运行的程序
答
你可以做(不涉足凌乱/复杂/平台具体的东西),最好是调用Process.kill()
当你启动外部应用程序,你得到了处理对象。
我不认为这是保证关闭应用程序*,并有可能导致它不洁净地关闭;即没有给应用程序保存打开的文件等的机会等。
*确实,* NIX如果您从非根Java应用程序启动了“setuid root”进程,并且操作系统不会让它发送任何信号到。
答
为什么没有启动和停止该应用程序的批处理(Windows)或脚本(* nix)文件,然后使用参数start/stop运行runtime.exec?
UPDATE:
这可能会帮助:http://it.toolbox.com/blogs/database-solutions/kill-a-process-in-windows-bat-19875
第二次更新
您还可以通过使用exe文件名称搜索:'tasklist ^| findstr /i excel.exe'
答
在Windows中,这将失败。这是前25个bug(或者前25个rfe),尽管它并不是Java的错......在Windows上,父进程中的任何子进程都不会在杀死父进程时被杀死.....并且还有许多方式来运行这个(cmd/c任何东西,你将在游戏中的土地)
你如何打开它?你没有参考这个打开的应用程序来关闭它吗? – LaGrandMere 2010-12-14 00:49:14
我正在使用runtime.exec()打开它 – Jerry 2010-12-14 01:10:09