java程序重启_如何使您的Java应用程序重新启动

参见英文答案 > How can I restart a Java application?????????????????????????????????????13个

我想在我的应用程序中实现重置功能,它清理一些目录,复制文件等,然后为了完成我需要重新启动它的过程.

如何使应用程序重新运行?我认为打开第二个实例并关闭这个就足够了,尽管它不是真正的重启.

我的应用程序的核心是扩展JFrame的类,但是有许多静态块在程序执行时读取类的扩展.我需要以编程方式重新启动我的应用程序,以便再次创建/执行所有静态集合和块.

它就是这样开始的.

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new Window().createGUI();

}

});

这似乎工作正常:

public void restart() {

/* dispose();

Window.main(null);*/

StringBuilder cmd = new StringBuilder();

cmd.append(System.getProperty("java.home") + File.separator + "bin" + File.separator + "java ");

for (String jvmArg : ManagementFactory.getRuntimeMXBean().getInputArguments()) {

cmd.append(jvmArg + " ");

}

cmd.append("-cp ").append(ManagementFactory.getRuntimeMXBean().getClassPath()).append(" ");

cmd.append(Window.class.getName()).append(" ");

try {

Runtime.getRuntime().exec(cmd.toString());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.exit(0);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值