Windows:有没有应用程序的一个实例正在运行时可以被干净地卸载的例子?



我工作的公司有一个基于Java的工具,可以在Linux和Windows上运行。Windows平台上的一个测试用例涉及在运行该工具的实例时卸载和安装该工具。我指出,在这种情况下,干净的卸载或安装是不会发生的,测试用例注定会失败,因为对于任何Windows应用程序,如果我们试图在运行时卸载它,它会抗议。

我的一位前辈指出,上述情况并不一定正确,这取决于应用程序的设计。我不完全相信,在网上查了一下,但找不到任何支持他的说法的东西。

谁能给我的应用程序的例子,可以卸载,而一个实例正在运行,为Windows?或者有静默卸载,就此而言?在应用程序的一个实例正在运行的情况下,是否有应用程序发生干净卸载/安装的例子?

只是想知道这是否真的可能。

一些指针:

你可以使用下面的命令强制终止一个进程:

taskkill /F /IM <processname>.exe 

Java代码:

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")

如果您使用Runtime.exec()通过java启动一个进程,那么您可以使用有效的Process引用调用destroy()方法来终止进程。

关于你的问题:

您可以简单地调用相应程序的uninstall.exe,如:

Process p = new ProcessBuilder("C:\Program Files\Your Program\uninstall\remove.exe").start();

注意:

请确保在卸载程序之前已杀死正在运行的程序实例

最新更新