2010-12-14 101 views
3

我从我的Java应用程序打开一个外部应用程序。我怎样才能从同一个Java应用程序中关闭这个应用程序? 感谢关闭从Java应用程序运行的程序

+0

你如何打开它?你没有参考这个打开的应用程序来关闭它吗? – LaGrandMere 2010-12-14 00:49:14

+0

我正在使用runtime.exec()打开它 – Jerry 2010-12-14 01:10:09

回答

2

你可以做(​​不涉足凌乱/复杂/平台具体的东西),最好是调用Process.kill()当你启动外部应用程序,你得到了处理对象。

我不认为这是保证关闭应用程序*,并有可能导致它不洁净地关闭;即没有给应用程序保存打开的文件等的机会等。

*确实,* NIX如果您从非根Java应用程序启动了“setuid root”进程,并且操作系统不会让它发送任何信号到。

0

为什么没有启动和停止该应用程序的批处理(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'

+0

这听起来不错我正在使用Windows,但不知道如何做到这一点 – Jerry 2010-12-14 01:15:26

+0

我将如何处理人民电脑上不同的路径 – Jerry 2010-12-14 01:17:13

0

在Windows中,这将失败。这是前25个bug(或者前25个rfe),尽管它并不是Java的错......在Windows上,父进程中的任何子进程都不会在杀死父进程时被杀死.....并且还有许多方式来运行这个(cmd/c任何东西,你将在游戏中的土地)