【问题标题】:Restart a java application for linux and windows重新启动适用于 linux 和 windows 的 java 应用程序
【发布时间】:2014-01-22 11:59:43
【问题描述】:

我有一个 java 应用程序,当有更新时它应该重新启动。我怎样才能再次自动重启java应用程序。

我尝试使用流程构建器重新启动。

ProcessBuilder builder = new ProcessBuilder(command);
builder.directory(new File(workingDir));
builder.start();
System.exit(0);

但是,当我检查运行早期进程的应用程序时,它仍在运行。

【问题讨论】:

  • 应用程序。有图形用户界面吗?
  • 对于部署 Java 桌面应用程序,最好的选择通常是安装应用程序。使用Java Web Start。 JWS 适用于 Windows、OS X 和 *nix 并提供自动和程序控制的更新。

标签: java linux windows restart processbuilder


【解决方案1】:

将你的进程重启逻辑放入separate thread,并将其注册为shutdown hook

也许你可以给这个关闭钩子线程daemon 并在主线程中放置一些睡眠。如果进程没有在给定时间内重新启动,则它们只需退出应用程序,否则应用程序将重新启动并让此(主)进程关闭。

也可以考虑启动新流程

Runtime.getRuntime().exec(yourProcess); 

对于windows你可以做

Runtime.getRuntime().exec("cmd /c start yourProcess");

对于 linux 进程默认情况下是分离的,所以只需使用 Runtime.getRuntime().exec(yourProcess); 执行命令就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2016-08-12
    • 1970-01-01
    相关资源
    最近更新 更多