2010-12-30 31 views
5

Có cách nào để nhận thông báo về việc JVM tắt hoặc gọi System.exit trước khi tắt máy thực sự không? Tôi muốn điều này, vì vậy ứng dụng của tôi sẽ có thể thực hiện lối thoát sạch. Tôi nhận ra rằng điều đó dường như không tồn tại, nhưng vẫn còn, có lẽ có cái gì đó như thế này?Chặn cuộc gọi tắt máy java?

Trả lời

11

Có một cái nhìn tại Runtime.addShutdownHook

Từ các tài liệu API:

Các máy ảo Java tắt để đáp ứng với hai loại sự kiện:

  • Chương trình thoát bình thường, khi người cuối cùng không thoát daemon hoặc khi lối ra (tương đương, System.exit) được gọi, hoặc
  • Máy ảo bị chấm dứt để phản hồi người dùng bị gián đoạn, chẳng hạn như gõ^C hoặc hệ thống sự kiện toàn diện, chẳng hạn như đăng xuất người dùng hoặc tắt hệ thống.

Sử dụng Runtime.addShutdownHook bạn có thể chạy mã trong những trường hợp đó.

+0

Hoan hô! Bạn thực sự đã giúp tôi! – Rogach

3

Có phương thức Runtime.getRuntime().addShutdownHook() mà bạn có thể muốn khám phá.

Các vấn đề liên quan