Install4j - 有没有办法杀死当前使用的端口?

时间:2018-03-07 15:15:20

标签: install4j

当我们的安装程序失败时,默认情况下会启动回滚过程。 由于我们的安装程序涉及Windows服务,因此我们使用Optional Rollback Script属性在安装后发生故障时关闭并删除这些服务。

我们的问题是某些进程仍然分配给某些端口,这种情况导致用户无法在不先杀死这些端口的情况下删除安装目录。

现在,在命令行中,使用以下命令很容易找到并终止这些进程:

netstat -ano | findstr :<portNumber>
taskkill /PID <processId> /F

我的问题是,我无法通过Run Script操作运行这些命令,获取其进程ID并关闭它们。 (不管怎样,我都无法得到输出)

安装程序中是否有这样的内置选项?如果没有,还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用WinProcesses API来终止进程:

https://resources.ej-technologies.com/install4j/help/api/com/install4j/api/windows/WinProcesses.html

至于调用netstat,你必须调用

netstat -ano

使用&#34;运行可执行文件或批处理文件&#34;行动并设置其&#34;重定向标准输出&#34;属性到&#34;到安装程序变量&#34;。然后你可以在&#34;运行脚本&#34;中解析输出。动作。