2010-09-17 37 views
8

Tôi chỉ tự hỏi. Tôi có cần gọi phương thức System.exit(0); ngay trước main của ứng dụng dòng lệnh Java không? Nếu vậy, tại sao? Sự khác biệt khi để nó tự thoát ra là gì, nếu tôi luôn đặt ở đó 0? Những gì không được làm sạch?Kết thúc ứng dụng dòng lệnh Java đúng

Xin cảm ơn trước.

+1

Xem thêm http://stackoverflow.com/questions/3715967/when-should-we-call-system-exit-in-java – Qwerky

Trả lời

16

Không! Bạn không cần phải gọi số System.exit(0) để kết thúc một chương trình java. Nếu không có chủ đề không phải daemon sinh ra bởi mã của bạn, ứng dụng sẽ tự động chấm dứt khi hoàn thành nhiệm vụ chủ đề chính của bạn.

Nếu phương pháp chính của bạn dẫn đến sinh sản một số chuỗi không phải daemon vẫn còn hoạt động trong khi phương thức chính của bạn đã kết thúc, thì ứng dụng sẽ không bị chấm dứt cho đến khi các chuỗi đó hoàn tất. Trong trường hợp này, nếu bạn gọi một cách rõ ràng System.exit(0), thì ứng dụng sẽ chấm dứt ngay lập tức tiêu diệt tất cả các chủ đề của bạn.

Vui lòng tham khảo javadoc of Thread đề cập đến chi tiết.

2

Không cần gọi System.exit(), chỉ cần trả lại từ main(). Đây là thành ngữ bình thường để thoát khỏi một chương trình Java.

System.exit() thường được gọi là chấm dứt một ứng dụng ở giữa sự vật (thường có nghĩa là chấm dứt bất thường do lỗi nghiêm trọng).

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