2012-02-22 3 views
0

Я прототипирую параллельную/распределенную систему в Java. Когда процесс завершается (например, ctrl + c в командной строке или красной кнопке в Eclipse), я хотел бы передать сообщение другим процессам (одному окончательному методу), прежде чем он исчезнет. Пробовал делать это с finalize(), но безрезультатно. Просто чистая Java с потоками, сокетами и основным контуром. Благодарю.Java выполняет окончательное действие после завершения программы?

+0

См. Http://stackoverflow.com/questions/914666/how-to-capture-system-exit-event – bithead61

ответ

7

Вы пытались использовать Runtime.addShutdownHook?

Примечания части в документации, указывающей, что иногда JVM может прервать без выполнения завершения работы крюков - это должно быть использовано в качестве части изящного отключения, но не следует считать всегда перспективе. (Предположим, что, если ваша сеть внезапно отключена, например, вы не можете транслировать прощальное сообщение в этом случае.)

+0

Отлично, спасибо всем! – mstath

1

Вы можете использовать Runtime.addShutdownHook().

0

Runtime.addShutdownHook() - это то, что вы хотите. Это выполняется только в том случае, если JVM отключается нормально

Смежные вопросы