Install4j - OSX启动程序问题

时间:2018-04-19 04:43:57

标签: java macos install4j launcher

我们在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应用程序。

1 个答案:

答案 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
}