Я хочу реализовать функцию 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