2008-08-25 18 views
19

Tôi đang tìm phương pháp tốt nhất để chạy một Ứng dụng Java dưới dạng trình nền * NIX hoặc Dịch vụ Windows. Tôi đã xem xét số Java Service Wrapper, Apache Commons project 'jsvc'Apache Commons project 'procrun'. Cho đến nay, Java Service Wrapper trông giống như đó là lựa chọn tốt nhất ... nhưng, tôi tự hỏi liệu có bất kỳ sản phẩm được cấp phép "Nguồn mở thân thiện" nào khác không.Phương pháp tốt nhất để chạy ứng dụng Java dưới dạng * nix Daemon hoặc Dịch vụ Windows?

+0

Đối với Dịch vụ Windows, hãy xem câu hỏi này: http://stackoverflow.com/questions/68113/how-to-create-a-windows-service-from-java-app/3626452#3626452 (Thêm nhận xét này làm Google đưa tôi đến đây, nhưng câu hỏi khác có nhiều câu trả lời hơn). – atomicules

Trả lời

17

Tôi đã thành công lớn với Java Service Wrapper. Tôi đã không nhìn vào người khác, nhưng thế mạnh chính của ServiceWrapper là:

  • lớn hỗ trợ x-platform - Tôi đã sử dụng nó trên Windows và Linux, và tìm thấy nó dễ dàng trên cả hai
  • Tài liệu rắn - Các tài liệu rõ ràng và chính xác, với các ví dụ tuyệt vời
  • Hỗ trợ nền tảng sâu - Có một số tính năng độc đáo trong hệ thống quản lý dịch vụ cửa sổ được hỗ trợ hoàn hảo bởi trình bao bọc dịch vụ (khởi động lại). Và trên Windows, bạn thậm chí sẽ thấy tên ứng dụng của mình trong danh sách quá trình thay vì chỉ "java.exe".
  • Tiêu chuẩn tuân thủ - Không giống như nhiều tập lệnh init Java đặc biệt, các tập lệnh cho trình bao bọc dịch vụ có xu hướng tuân thủ các tiêu chuẩn LSB. Điều này có thể sẽ trở nên rất quan trọng nếu bạn muốn quản lý tính sẵn sàng cao từ một thứ như Linux Heartbeat/HA.

Dù sao, chỉ cần 2 cent của tôi ... :)

+1

Không thể đề xuất điều này đủ cao –

1

Có bất kỳ thuộc tính đặc biệt nào mà bạn cần áp dụng (như quản lý tài nguyên hướng dẫn OS) mà bạn cần hỗ trợ không? Nếu không, đối với Unix, bạn sẽ có thể daemonize ứng dụng của bạn bằng cách viết một script init.d thích hợp và thiết lập ứng dụng của bạn để bắt đầu tự động.

3

lựa chọn khác là WinRun4J. Đây chỉ là cửa sổ nhưng có một số tính năng hữu ích:

  • 32 bit và hỗ trợ 64
  • API để truy cập các bản ghi sự kiện và registry
  • có thể đăng ký dịch vụ để được phụ thuộc vào các dịch vụ khác (ví dụ Serviceâ và serviceB phải khởi động trước serviceC)

Nguồn thân thiện với mã nguồn mở (CPL) của nó để không bị hạn chế sử dụng.

(tiết lộ đầy đủ: Tôi làm việc trong dự án này).