我想在我的應用程序中實現reset
功能,該功能可清理某些目錄,複製文件等,然後爲了完成該過程,我需要重新啓動它。如何讓您的java應用程序自行重新啓動
如何讓應用程序重新運行?我認爲打開第二個實例並關閉這個就足夠了,儘管這不是真正的重啓。
我的應用程序的核心是擴展了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);
}
@DNA嘗試過,我不工作。 – Yoda
非常不完整,我擔心你的問題是。對我們來說,澄清一下吧。很大。是的,嗯。 GUI,是嗎?搖擺,是嗎? –
這可能是XY問題嗎? http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Brandon