Как перезапустить приложение, если произойдет какое-либо обновление? - PullRequest
1 голос
/ 15 апреля 2011

Мое требование - перезапустить приложение.

У меня есть кнопка интерфейса пользователя.Когда я нажимаю на это, это должно остановить текущее работающее приложение и должно запустить то же самое приложение.

Используемый язык - Java.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Создайте процесс, который запустит новое application.invoke java -jar yourApp.jar с использованием Java и остановит текущее приложение.

1 голос
/ 15 апреля 2011

В дополнение к решению Jigar вы можете захотеть делегировать дополнительные параметры перезапускаемому приложению, такие как параметры виртуальной машины, программные аргументы или базовый каталог вашего приложения.Вы можете расширить эту заглушку для своих нужд:

private static void restartApplication() throws IOException {
    List<String> arguments = ManagementFactory.getRuntimeMXBean().getInputArguments();
    List<String> fullRestart = new ArrayList<String>();
    fullRestart.add(System.getProperty("java.home")+"/bin/java");
    fullRestart.addAll(arguments);
    fullRestart.add("-cp");
    fullRestart.add(System.getProperty("java.class.path"));
    // Assuming that 'Application' contains the main method:
    fullRestart.add(Application.class.getName());
    ProcessBuilder pb = new ProcessBuilder(fullRestart);
    pb.directory(new File(".").getParentFile());
    System.out.println("Starting app - arguments: " + fullRestart);
    pb.start();
    System.exit(0);
}
0 голосов
/ 15 апреля 2011

создать пакетный файл myBat.bat

PING 1.1.1.1 -n 1 -w 30000 >NUL // wait for your application to stop 3000 milsec
java -jar yourApp.jar

до system.exit (0)

вызов

Runtime.getRuntime().exec(myBat.bat); // give proper path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...