2008-08-25 8 views
19

Javaアプリケーションを* NIXデーモンまたはWindowsサービスとして実行する最適な方法を探しています。私はJava Service WrapperApache Commons project 'jsvc'、およびApache Commons project 'procrun'を調べました。これまでのところ、Java Service Wrapperは最良の選択肢だと思われますが、他の「オープンソースにやさしい」ライセンス製品があるかどうかは疑問です。Javaアプリケーションを* nixデーモンまたはWindowsサービスとして実行する最適な方法は?

+0

Windowsサービスの場合は、次の質問をご覧ください。http://stackoverflow.com/questions/68113/how-to-create-a-windows-service-from-java-app/3626452#3626452(このコメントをGoogleに追加する私をここに連れて来ましたが、他の質問にはもっと答えがあります)。 – atomicules

答えて

17

私はJava Service Wrapperで大きな成功を収めました。私は他の人を見ていないが、ServiceWrapperの大きな強みは、以下のとおりです。

  • グレートXプラットフォームのサポート - 私は、WindowsおよびLinux上でそれを使用して、両方の
  • ソリッドドキュメントにそれが簡単に見つけました
  • プラットフォームごとの深いサポート - サービスラッパー(完全な再起動)で完全にサポートされているウィンドウサービス管理システムには、いくつかのユニークな機能があります。 Windowsでは、単にjava.exeの代わりにプロセスリストにあなたのアプリ名が表示されます。
  • 標準準拠 - 多くのアドホックJava初期スクリプトとは異なり、サービスラッパーのスクリプトはLSB標準に準拠している傾向があります。 Linux Heartbeat/HAなどの高可用性管理が必要な場合は、これが非常に重要になります。とにかく

、ちょうど私の2セント... :)

+1

これは十分に推奨できません –

1

サポートする必要がある(OSガイド付きリソース管理のような)特別な属性はありますか?それ以外の場合は、Unixの場合、適切なinit.dスクリプトを記述してアプリを自動的に起動するように設定することで、アプリケーションをデーモン化することができます。

3

別のオプションはWinRun4Jです。これはWindowsだけでなく、いくつかの便利な機能を備えています。

  • 32ビットおよび64ビットのサポートイベントログにアクセスし、他のサービスに依存するサービスを登録することができ
  • レジストリへ
  • API(すなわちサービスAとserviceBサービス開始前に起動する必要があります.C)

オープンソースフレンドリー(CPL)なので、使用上の制限はありません。

(完全公開:私はこのプロジェクトを担当しています)

関連する問題