Во многих программах после внесения каких-либо изменений программное обеспечение необходимо перезапустить, чтобы изменения вступили в силу, а иногда есть возможность автоматического перезапуска программного обеспечения , Как я могу реализовать это на Java?
Это то, что я пробовал:
Как реализовать функцию «перезапустить приложение» в Java
int o = JOptionPane.showConfirmDialog(
frame,
"<html>The previously selected preferences have been changed.<br>Watch must restart for the changes to take effect.<br> Restart now?</html>",
"Restart now?", JOptionPane.YES_NO_OPTION);
if(o == JOptionPane.YES_OPTION) {
try {
Process p = new ProcessBuilder("java", "Watch").start();
} catch(IOException e) {
e.printStackTrace();
}
frame.dispose();
Однако, это не похоже на работу. Приложение просто завершается. Что мне здесь не хватает? Заранее спасибо!
Попробуйте абсолютный путь, а не просто «Дозора». – Sebastian
Вы имеете в виду добавить CLASSPATH? –
Попробуйте запустить вашу программу из командной строки -> Поместите именно это в 'ProcessBuilder'. У меня когда-то была проблема, что переменные среды, такие как «PATH», не были загружены ProcessBuilder, поэтому «java» не был распознан. Однако есть способ сделать это. Я не помню ... – Sebastian