1

我一直在看不同的文章,几个小时的例子,并成功地将自己完全弄糊涂了。我正在尝试使用 YAJSW 作为服务包装器并将我的 Executable JAR 文件安装为 Windows 服务。我曾经使用 Tanukisoft 的社区版包装器,它工作得非常好,但 64 位 Windows 版本在 CE 中不可用。

我想我有几个问题。

  1. 在旧软件中,我不需要实现 WrapperListener。这对 YAJSW 有必要吗?
  2. 如果是这样,有什么好的例子吗?我见过一些,但我的应用程序没有从主类返回任何内容。它的主类是一个持续运行的 URL 连接,从 REST API 读取输入并产生一个线程来处理接收到的信息。它确实有一个用于干净退出的关闭挂钩。
  3. 有没有一种简单的方法可以将 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
4

1 回答 1

2

首次安装(即主机上没有安装现有服务)

  1. 为您的应用程序构建可执行 jar 文件
  2. 将jar文件复制到目标windows机器/目标目录
  3. 将 yajsw.zip 复制到目标机器/目标目录
  4. 在目标 Windows 机器/目标目录上:
    1. 解压缩 yajsw.zip 的内容。完成后,可以删除 yajsw.zip 文件。
    2. 在目标机器/目标目录中打开 Windows 命令提示符并运行:java -jar yourExecutableJar.jar
    3. 获取您刚刚使用 Windows 任务管理器启动的 java 进程的进程 ID。
    4. 在 target-dir\yajsw\yajsw-stable-majorversion.minorversion\bat 打开新的命令窗口。
    5. 以管理员身份运行, genConfig [processId] 其中 processID 是您之前确定的
    6. 停止之前启动的 java 进程
    7. 在 target-dir\yajsw\yajsw-stable-majorversion.minorversion\conf 中打开 wrapper.conf
    8. 编辑 wrapper.conf 中的字段: wrapper.ntservice.name=YourServiceName; wrapper.ntservice.displayname=YourServiceDisplayName;wrapper.ntservice.description=YourServiceDescription
    9. 保存更改并关闭 wrapper.conf
    10. 以管理员身份运行 installService in target-dir\yajsw\yajsw-stable-majorversion.minorversion\bat
    11. 以管理员身份运行 startService in target-dir\yajsw\yajsw-stable-majorversion.minorversion\bat

更新说明

  1. 使用 Windows 任务管理器或服务管理器停止服务
  2. 在安装目录中,删除项目现有的jar文件
  3. 将新的jar文件复制到安装目录
  4. 重新启动服务。
于 2019-08-27T19:55:07.697 回答