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

发布于 2024-11-01 16:44:09 字数 95 浏览 5 评论 0原文

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

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

使用的语言是java。

My requirement is to restart an application.

I have a User Interface button. When I click on that, it should stop the current running application and should start the same application.

The language being used is java.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

姐不稀罕 2024-11-08 16:44:09

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

Create a process that will start new application.invoke java -jar yourApp.jar using java and stop the current app.

压抑⊿情绪 2024-11-08 16:44:09

除了 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);
}

In addition to Jigar's solution, you might want to delegate additional parameters to the restarted app, such as VM options, program arguments, or the base dir of your application. You could expand this stub to your needs:

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);
}
御弟哥哥 2024-11-08 16:44:09

之前创建批处理文件 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

create batch file myBat.bat

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

before system.exit(0)

call

Runtime.getRuntime().exec(myBat.bat); // give proper path
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文