如何重新启动Java应用程序?

发布于 2021-02-02 22:54:43

如何重新启动Java AWT应用程序?我有一个附加了事件处理程序的按钮。我应该使用什么代码来重新启动应用程序?

我想做与Application.Restart()C#应用程序中相同的事情。

关注者
0
被浏览
108
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    当然,可以重新启动Java应用程序。

    以下方法显示了一种重新启动Java应用程序的方法:

    public void restartApplication()
    {
      final String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
      final File currentJar = new File(MyClassInTheJar.class.getProtectionDomain().getCodeSource().getLocation().toURI());
    
      /* is it a jar file? */
      if(!currentJar.getName().endsWith(".jar"))
        return;
    
      /* Build command: java -jar application.jar */
      final ArrayList<String> command = new ArrayList<String>();
      command.add(javaBin);
      command.add("-jar");
      command.add(currentJar.getPath());
    
      final ProcessBuilder builder = new ProcessBuilder(command);
      builder.start();
      System.exit(0);
    }
    

    基本上,它执行以下操作:

    1. 查找Java可执行文件(我在这里使用了Java二进制文件,但这取决于您的要求)
    2. 查找应用程序(在我的情况下是一个jar,使用MyClassInTheJar类来查找jar本身)
    3. 生成命令以重新启动jar(在这种情况下,请使用Java二进制文件)
    4. 执行它!(从而终止当前应用程序并再次启动它)


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看