Java Windows:有没有可以在其实例运行时完全卸载的应用程序示例?

Java Windows:有没有可以在其实例运行时完全卸载的应用程序示例?,java,windows,installation,uninstallation,windows-applications,Java,Windows,Installation,Uninstallation,Windows Applications,我工作的公司有一个基于Java的工具,可以在Linux和Windows上运行。Windows平台的一个测试用例涉及在工具实例运行时卸载和安装该工具。我指出,在这种情况下,完全卸载或安装是不会发生的,测试用例肯定会失败,因为对于任何Windows应用程序,如果我们试图在它运行时卸载它,它都会抗议 我的一位前辈指出,上述情况不一定正确,这取决于应用程序的设计。我并没有完全信服,也没有在网上查到,但找不到任何证据支持他的说法 有人能给我举一些应用程序的例子吗?这些应用程序可以在Windows的实例运行

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

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

有人能给我举一些应用程序的例子吗?这些应用程序可以在Windows的实例运行时卸载?或者哪一个有静默卸载呢?是否有任何应用程序实例在运行应用程序实例的情况下进行了干净的卸载/安装


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

一些提示:

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")
您可以使用以下命令强制终止进程:

taskkill /F /IM <processname>.exe 
注意:

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

在卸载程序之前,请确保正在删除该程序的运行实例。

可以这样做,但它是脏的。基本上,您将拥有“launcher”,它将“core”应用程序复制到“running”位置,然后通过命令行执行此“core”(
javaw.exe
),从而允许launcher终止。然后,您可以在实例运行时更新应用程序…切换实例是另一个问题,但不是无法解决的…我相信卸载时可以终止正在运行的实例,这应该会解决问题。是的,这也是我的理解@ElliottFrisch。必须终止正在运行的实例才能得到一个干净的卸载/安装。@程序员:我不太明白你的意思。您能详细说明一下吗?基本上,您有一个Jar/程序,当执行时,它将“核心应用程序”复制到另一个“正在运行”的位置,然后在一些位置执行,这将允许Jar/程序在“核心应用程序”运行后终止。这将允许删除和更新“现有”安装基础,而不会出现问题。您只需要能够告诉正在运行的实例终止,这可以通过使用套接字…或文件来实现…谢谢!这就是我对它的理解,必须杀死运行中的实例才能获得干净的安装/卸载。你是对的,如果不这样做,卸载过程将不会成功。