簡體   English   中英

無需apache-commons-daemon jar直接實現JSVC

[英]Implementing JSVC directly without apache-commons-daemon jar

根據apache commons文檔( https://commons.apache.org/proper/commons-daemon/jsvc.html ),我應該能夠直接使用jsvc作為守護程序運行我的應用程序,而無需實現Daemon類:

編寫一個實現以下方法的類(MyClass):

  • void init(String [] arguments):在這里打開配置文件,創建跟蹤文件,創建ServerSockets,線程
  • void start():啟動線程,接受傳入的連接
  • void stop():通知線程終止run(),關閉ServerSockets
  • void destroy():銷毀在init()中創建的任何對象

將其存儲在jarfile中,並按上述方式使用:

./jsvc -cp my.jar MyClass

MyClass實現上述方法,而不實現Daemon類。 但是,如果我嘗試如上所述調用jsvc而不在類路徑中包含commons-daemon.jar,

我收到以下錯誤:

Cannot find the daemon loader org/apache/commons/daemon/support/DaemonLoader
java_init failed

如果我將其包含在類路徑中,則一切正常。

./jsvc -cp commons-daemon.jar:my.jar MyClass

我從文檔中了解到,如果我不使用該庫中的任何內容,則無需包含commons-daemon.jar,而只需在實現了所需方法的類上直接調用jsvc即可。 這不正確嗎? 我不想將任何不必要的罐子與我的包裝捆綁在一起。

我應該能夠直接使用jsvc將應用程序作為守護程序運行,而無需實現Daemon類 Correct。

但是,如果我嘗試如上所述調用jsvc而不在類路徑中包含commons-daemon.jar。 這是您出問題的地方。 您需要commons-daemon.jar ,而不是實現Daemon Apache JSVC仍然需要它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM