|
|
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Возникла такая проблема. Есть работающее приложение. В некоторый момент мне необходимо его остановить и перезапустить. Для запуска приложения есть bat-файл. Можно ли как-нибудь сказать приложению, мол "убей себя", но перед смертью запусти-ка вот это? И в результате оно должно закрыться, запустив этот батник (себя же). Или может есть какой-нибудь другой способ это реализовать (без бат-файла)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 17:53:47 |
|
||
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
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, чтобы отвязать новый процесс от старого. Остаётся только забороть конкуренцию этих двух процессов, если такая имеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 18:05:30 |
|
||
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
Убить процесс нужно только изнутри. Если я все правильно понимаю System.exit() должен подойти. И при вызове System.exit() выполнится shutdown hook, в котором можно запустить нужный файл через exec(). Верно? Не совсем понял про конкуренцию. Возможно формулировка "запустить себя же" не совсем корректна. Мне нужно чтоб старый процесс полностью умер, а новый (из этого же батника) запустился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 18:11:38 |
|
||
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
Slider_116Мне нужно чтоб старый процесс полностью умер, а новый (из этого же батника) запустился. Ну, если система даст приоритет новому процессу и он запустится раньше, чем умрет старый? Если это нормально, то и проблемы нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 18:16:26 |
|
||
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
Думаю с этим проблем не возникнет. Спасибо за совет. Буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 18:24:41 |
|
||
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
Slider_116В некоторый момент мне необходимо его остановить и перезапустить. Для запуска приложения есть bat-файл. Можно ли как-нибудь сказать приложению, мол "убей себя", но перед смертью запусти-ка вот это? Код: sql 1. Или может есть какой-нибудь другой способ это реализовать (без бат-файла)? Службы . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 16:35:10 |
|
||
|
Перезапуск приложения.
|
|||
|---|---|---|---|
|
#18+
Под винду я делал через стартовый параметр. Приложение при запуске ходило смотреть есть ли новая версия. Если новой версии нет, то просто продолжало выполнение. Если новая версия есть, то приложение копировало само себя в корневой папке и свою копию запускало с параметром, который говорил о том, что надо обновиться и закрывалось. Копия запускалась и видяла что есть параметр обновления. Копия искала главное приложение и удаляло его, если не получалось удалить, то ждало немного и снова пробовало удалить и так в цикле 3 попытки с перерывами. Если не удалось удалить, то выдавало сообщение о невозможности произвести обновление (такое может быть в случае, если основное приложение не закрылось по какойто там причине аварийной). Если удалилось, то шло на сервер за новой версией. Если вдруг файл новой версии не удалось найти, то делало копию себя заместо новой версии, или копировало новую версию из сети. Как это сделать кросплатформенное... пусть это будет Вам домашним заданием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 19:51:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37680794&tid=2132453]: |
0ms |
get settings: |
18ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
64ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 388ms |
| total: | 604ms |

| 0 / 0 |
