我们在CentOS7上使用install4j版本6.1.4(版本6320)。
我们为OSX构建了安装程序,安装程序类型为“Mac OSX文件夹”。安装程序有一个启动程序,它将启动自定义Java SystemTray应用程序。
在安装过程中,启动程序按预期执行,并显示SystemTray应用程序。即使在安装过程完成后,启动器仍会保留在Applications Doc中,而不会关闭。 在系统托盘应用程序关闭之前,此启动程序不会退出Applications Doc。
当机器关机时,启动器仍在运行,直到我们强行退出或关闭SystemTray应用程序。
我们是否可以在安装完成后立即关闭启动器进程?
--- ---更新
该问题特定于OSX。
启动程序实际上是一个JavaApplicationStub二进制文件,它运行基于Java的自定义SystemTray应用程序。
当我们尝试退出JavaApplicationStub应用程序(可在Application Doc上使用)时,在我们关闭SystemTray应用程序或强制退出它之前,它不会退出。
当我们终止JavaApplicationStub进程时,它也会杀死SystemTray应用程序。
答案 0 :(得分:1)
如果您没有该流程的句柄,可以使用WinProcesses
API终止您知道可执行文件完整路径的流程:
for (WinProcesses.Info info : infos) {
if (info.getModuleName().equals("full path to executable")) {
WinProcesses.terminateProcesses(new int[] {info.getProcessId()});
return true;
}
}
在macOS上,有一个相应的MacProcesses API:
for (MacProcesses.Info info : infos) {
if (info.getModuleName().equals("full path to executable")) {
MacProcesses.terminateProcesses(new int[] {info.getProcessId()});
return true;
}, false, 10000
}