powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Перезапуск приложения.
7 сообщений из 7, страница 1 из 1
Перезапуск приложения.
    #37680716
Slider_116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Возникла такая проблема. Есть работающее приложение. В некоторый момент мне необходимо его остановить и перезапустить. Для запуска приложения есть bat-файл.

Можно ли как-нибудь сказать приложению, мол "убей себя", но перед смертью запусти-ка вот это?

И в результате оно должно закрыться, запустив этот батник (себя же).

Или может есть какой-нибудь другой способ это реализовать (без бат-файла)?
...
Рейтинг: 0 / 0
Перезапуск приложения.
    #37680761
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slider_116Можно ли как-нибудь сказать приложению, мол "убей себя"

System.exit() изнутри.
SIGTERM / Ctrl+C снаружи ( http://www.sql.ru/forum/actualthread.aspx?tid=854811)


Slider_116, но перед смертью запусти-ка вот это?

https://www.google.com/search?q=Java+shutdown+hook

Slider_116И в результате оно должно закрыться, запустив этот батник (себя же).
Или может есть какой-нибудь другой способ это реализовать (без бат-файла)?
Тут сложнее. Если повезет, то всё заработает без проблем, через Runtime.exec/ProcessBuilder
Если нужно только под виндой, то можно использовать комбинацию команд start и cmd, чтобы отвязать новый процесс от старого.

Остаётся только забороть конкуренцию этих двух процессов, если такая имеется.
...
Рейтинг: 0 / 0
Перезапуск приложения.
    #37680776
Slider_116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Убить процесс нужно только изнутри. Если я все правильно понимаю System.exit() должен подойти.

И при вызове System.exit() выполнится shutdown hook, в котором можно запустить нужный файл через exec(). Верно?

Не совсем понял про конкуренцию. Возможно формулировка "запустить себя же" не совсем корректна. Мне нужно чтоб старый процесс полностью умер, а новый (из этого же батника) запустился.
...
Рейтинг: 0 / 0
Перезапуск приложения.
    #37680794
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slider_116Мне нужно чтоб старый процесс полностью умер, а новый (из этого же батника) запустился.
Ну, если система даст приоритет новому процессу и он запустится раньше, чем умрет старый? Если это нормально, то и проблемы нет.
...
Рейтинг: 0 / 0
Перезапуск приложения.
    #37680810
Slider_116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю с этим проблем не возникнет. Спасибо за совет. Буду пробовать.
...
Рейтинг: 0 / 0
Перезапуск приложения.
    #37682582
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slider_116В некоторый момент мне необходимо его остановить и перезапустить. Для запуска приложения есть bat-файл.
Можно ли как-нибудь сказать приложению, мол "убей себя", но перед смертью запусти-ка вот это?
Код: sql
1.
cmd /k goto /?&if /?

Или может есть какой-нибудь другой способ это реализовать (без бат-файла)? Службы .
...
Рейтинг: 0 / 0
Перезапуск приложения.
    #37683089
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под винду я делал через стартовый параметр. Приложение при запуске ходило смотреть есть ли новая версия. Если новой версии нет, то просто продолжало выполнение. Если новая версия есть, то приложение копировало само себя в корневой папке и свою копию запускало с параметром, который говорил о том, что надо обновиться и закрывалось. Копия запускалась и видяла что есть параметр обновления. Копия искала главное приложение и удаляло его, если не получалось удалить, то ждало немного и снова пробовало удалить и так в цикле 3 попытки с перерывами. Если не удалось удалить, то выдавало сообщение о невозможности произвести обновление (такое может быть в случае, если основное приложение не закрылось по какойто там причине аварийной). Если удалилось, то шло на сервер за новой версией. Если вдруг файл новой версии не удалось найти, то делало копию себя заместо новой версии, или копировало новую версию из сети.

Как это сделать кросплатформенное... пусть это будет Вам домашним заданием.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Перезапуск приложения.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]