首页 / JAVA / 如何使您的Java应用程序重新启动
如何使您的Java应用程序重新启动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使您的Java应用程序重新启动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1842字,纯文字阅读大概需要3分钟。
内容图文
![如何使您的Java应用程序重新启动](/upload/InfoBanner/zyjiaocheng/696/5ee85cd4583f4bb19acb69d60272199e.jpg)
参见英文答案 > 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);
}
解决方法:
这是来自另一个主题,但与其他主题中接受的问题相反,这个问题确实有效.
public void restart() {
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);
}
27/02/2018:我相信Mark发布了更好的解决方案:https://stackoverflow.com/a/48992863/1123020
内容总结
以上是互联网集市为您收集整理的如何使您的Java应用程序重新启动全部内容,希望文章能够帮你解决如何使您的Java应用程序重新启动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。