如果发生任何更新,如何重新启动应用程序?

时间:2011-04-15 06:29:30

标签: java application-restart

我的要求是重新启动应用程序。

我有一个用户界面按钮。当我点击它时,它应该停止当前运行的应用程序,并应该启动相同的应用程序。

使用的语言是java。

3 个答案:

答案 0 :(得分:2)

创建一个流程,使用java启动新的application.invoke java -jar yourApp.jar并停止当前的应用程序。

答案 1 :(得分:1)

除了Jigar的解决方案,您可能还希望将其他参数委派给重新启动的应用程序,例如VM选项,程序参数或应用程序的基础目录。您可以根据需要扩展此存根:

private static void restartApplication() throws IOException {
    List<String> arguments = ManagementFactory.getRuntimeMXBean().getInputArguments();
    List<String> fullRestart = new ArrayList<String>();
    fullRestart.add(System.getProperty("java.home")+"/bin/java");
    fullRestart.addAll(arguments);
    fullRestart.add("-cp");
    fullRestart.add(System.getProperty("java.class.path"));
    // Assuming that 'Application' contains the main method:
    fullRestart.add(Application.class.getName());
    ProcessBuilder pb = new ProcessBuilder(fullRestart);
    pb.directory(new File(".").getParentFile());
    System.out.println("Starting app - arguments: " + fullRestart);
    pb.start();
    System.exit(0);
}

答案 2 :(得分:0)

创建批处理文件myBat.bat

PING 1.1.1.1 -n 1 -w 30000 >NUL // wait for your application to stop 3000 milsec
java -jar yourApp.jar

在system.exit(0)之前

致电

Runtime.getRuntime().exec(myBat.bat); // give proper path