私は何時間もの間、さまざまな記事や例を見てきましたが、自分自身を完全に混乱させることに成功しました。YAJSW をサービス ラッパーとして使用し、実行可能 JAR ファイルを Windows サービスとしてインストールしようとしています。以前は Tanukisoft のコミュニティ エディションのラッパーを使用していましたが、うまく機能しましたが、64 ビット Windows バージョンは CE で利用できません。
いくつか質問があると思います。
- 古いソフトウェアでは、WrapperListener を実装する必要はありませんでした。これはYAJSWに必要ですか?
- もしそうなら、良い例はありますか?いくつか見てきましたが、私のアプリケーションはメイン クラスから何も返しません。そのメイン クラスは、REST API からの入力を読み取り、受け取った情報を処理するスレッドを生成する、常時実行される URL 接続です。クリーンな終了のためのシャットダウン フックがあります。
- Tanukis の構成 (以下) を YAJSW の構成に変換して同じ機能を維持する簡単な方法はありますか?
set.JAVA_HOME=C:/Program Files/Java/jre1.8.0_181
set.APP_HOME=G:/ProgFolder
wrapper.lang.folder=%APP_HOME%/lang
wrapper.java.command=java
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
#wrapper.java.classpath.1=../lib/wrappertest.jar
wrapper.java.classpath.1=%APP_HOME%/lib/wrapper.jar
wrapper.java.classpath.2=%APP_HOME%/RESTReader.jar
wrapper.java.classpath.3=%APP_HOME%/lib/javax.mail.jar
wrapper.java.classpath.4=%APP_HOME%
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=%APP_HOME%/lib
# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode.
wrapper.java.additional.auto_bits=TRUE
# Java Additional Parameters
wrapper.java.additional.1=-Dlog4j.configurationFile=file:/%APP_HOME%/conf/log4j2.xml
wrapper.java.additional.2=-Dorg.tanukisoftware.wrapper.WrapperSimpleApp.waitForStartMain=FALSE
# Application parameters. Add parameters as needed starting from 1
#wrapper.app.parameter.1=
wrapper.app.parameter.1=com.my.org.RESTReader.EventReg
wrapper.jvm_exit.timeout=120
wrapper.shutdown.timeout=120
# Name of the service
wrapper.name=RESTReader
# Display name of the service
wrapper.displayname=REST Alarm Manager
# Description of the service
wrapper.description=REST Alarm Manager
# Mode in which the service is installed. AUTO_START, DELAY_START or DEMAND_START
wrapper.ntservice.starttype=DELAY_START
# Allow the service to interact with the desktop.
wrapper.ntservice.interactive=false