我一直在看不同的文章,几个小时的例子,并成功地将自己完全弄糊涂了。我正在尝试使用 YAJSW 作为服务包装器并将我的 Executable JAR 文件安装为 Windows 服务。我曾经使用 Tanukisoft 的社区版包装器,它工作得非常好,但 64 位 Windows 版本在 CE 中不可用。
我想我有几个问题。
- 在旧软件中,我不需要实现 WrapperListener。这对 YAJSW 有必要吗?
- 如果是这样,有什么好的例子吗?我见过一些,但我的应用程序没有从主类返回任何内容。它的主类是一个持续运行的 URL 连接,从 REST API 读取输入并产生一个线程来处理接收到的信息。它确实有一个用于干净退出的关闭挂钩。
- 有没有一种简单的方法可以将 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