我需要重新启动一个java GUI应用程序以响应用户操作,就像切换工作区时eclipse重启自身一样。
我们目前使用的是install4j启动器,所以我想知道启动器是否可以配置为保持运行并重新启动应用程序,如果我使用特定的返回代码或类似的东西退出应用程序?
干杯
答案 0 :(得分:5)
这不是install4j中的一项功能。但是,您可以使用java.lang.ProcessBuilder再次启动启动程序并调用System.exit()。
如果启动程序是单实例GUI启动程序,则必须使用另一个等待启动程序关闭然后重新启动原始可执行文件的可执行文件。使用在“Startup”节点中包含“Execute launcher”操作的自定义安装程序应用程序可以轻松完成此操作。自定义安装程序应用程序通过带有参数
的API启动-q -wait 20
即。它以无人参与模式(无GUI)执行,并等待所有已安装的启动器关闭最多20秒。要显示进度条,请添加
-splash "Restarting application"
参数。启动自定义安装程序应用程序的代码如下所示:
import java.io.IOException;
import com.install4j.api.launcher.ApplicationLauncher;
try {
ApplicationLauncher.launchApplication("ID", new String[] {
"-q","-wait","20"
}, false, null);
} catch (IOException e) {
e.printStackTrace();
//TODO handle invocation failure
}
其中ID必须替换为自定义安装程序应用程序的ID。