Install4j - 有没有办法杀死当前使用的端口?
Install4j - is there any way killing currently used ports?
当我们的安装程序失败时,默认情况下会启动回滚过程。
因为我们的安装程序涉及Windows服务,所以我们使用Optional Rollback Script
属性关闭并删除这些服务,以防安装失败。
我们的问题是某些进程仍然分配给某些端口,这种情况导致用户在不先杀死这些端口的情况下无法删除安装目录。
现在,在命令行中,使用以下命令可以很容易地找到并终止这些进程:
netstat -ano | findstr :<portNumber>
taskkill /PID <processId> /F
我的问题是我无法通过 Run Script
操作 运行 这些命令,获取它们的进程 ID,然后关闭它们。 (无论如何,我无法取回输出)
Installer中是否有这样的内置选项?如果没有,有没有其他方法?
您可以使用 WinProcesses API 终止进程:
https://resources.ej-technologies.com/install4j/help/api/com/install4j/api/windows/WinProcesses.html
至于调用netstat,就得调用
netstat -ano
使用 "Run executable or batch file" 操作并将其 "Redirect stdout" 属性 设置为 "To installer variable"。然后您可以在 "Run script" 操作中解析输出。
当我们的安装程序失败时,默认情况下会启动回滚过程。
因为我们的安装程序涉及Windows服务,所以我们使用Optional Rollback Script
属性关闭并删除这些服务,以防安装失败。
我们的问题是某些进程仍然分配给某些端口,这种情况导致用户在不先杀死这些端口的情况下无法删除安装目录。
现在,在命令行中,使用以下命令可以很容易地找到并终止这些进程:
netstat -ano | findstr :<portNumber>
taskkill /PID <processId> /F
我的问题是我无法通过 Run Script
操作 运行 这些命令,获取它们的进程 ID,然后关闭它们。 (无论如何,我无法取回输出)
Installer中是否有这样的内置选项?如果没有,有没有其他方法?
您可以使用 WinProcesses API 终止进程:
https://resources.ej-technologies.com/install4j/help/api/com/install4j/api/windows/WinProcesses.html
至于调用netstat,就得调用
netstat -ano
使用 "Run executable or batch file" 操作并将其 "Redirect stdout" 属性 设置为 "To installer variable"。然后您可以在 "Run script" 操作中解析输出。