重启java swing应用程序

时间:2017-12-13 10:50:40

标签: java swing

我是一个更新鲜的人,我已经创建了一个运行完美的java swing应用程序。

我想在此应用程序中添加一个功能,当用户从任务管理器关闭或强制停止或通过其他方法退出或关闭此应用程序时。一段时间后,应用程序将自动重启。

是否可以这样做?

1 个答案:

答案 0 :(得分:0)

    new java.util.Timer().schedule(
    new java.util.TimerTask() {
        @Override
        public void run() {
            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);                                     
        }
    },
    5000);

阅读https://docs.oracle.com/javase/6/docs/api/java/util/Timer.html