如何以编程方式重启jar?

时间:2010-06-10 13:54:35

标签: jar restart

可执行jar文件可以自行重启吗?例如,在用户做出一些选择后,该程序会显示“重启应用程序?”并且用户单击“是”,然后jar关闭并重新启动。

2 个答案:

答案 0 :(得分:3)

需要重启应用程序是设计糟糕的迹象。

我肯定会努力“重新初始化”应用程序(重新读取配置文件,重新建立连接或什么),而不是强迫用户终止/启动应用程序(即使它是自动完成的)。

中途“黑客”将您的应用程序封装在一些类似于以下内容的运行程序类中:

public class Runner {
    public static void main(String... args) {
        while (true) {
            try {
                new YourApplication().run();
                return;
            } catch (RestartException re) {
            }
        }
    }
}

答案 1 :(得分:2)

好吧,如果您知道文件系统上Jar文件的位置,您可以以编程方式运行Jar。然后退出当前运行的版本。

Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("java -jar locatio/of/the/jar");
System.exit(0);