简单灵活的方法来运行java作为Windows服务

时间:2014-04-08 08:32:14

标签: java windows windows-services winrun4j yajsw

我阅读了SO q& a关于启动java作为Windows服务包装器,但无法找到/选择适合我要求的产品:

  1. Wrapper从配置文件中读取所有java启动参数。在注册表中必须只有命令来运行包装器本身 - exe的路径和可能的配置路径。始终授予管理员权限以更改注册表中的应用参数是不合适的。

  2. 工作目录和应用程序路径也必须在config中。我想将所有包装器文件深入到程序中,因为用户并不感兴趣。

  3. 没有依赖项(.net,python等)。我不想扩展我的计划要求。

  4. 每个Windows操作系统都免费,包括win64。

  5. 简单轻便。所有第三方罐子的程序大小为12Mbytes。我不想添加20Mbytes包装。

  6. 如果应用程序进程终止,则自动重启。

  7. 最好是所有Windows平台的单个exe文件。

  8. 我尝试通过不同的包装看起来并且有点疲惫。最合适的是:

    1. jslwin(http://jslwin.sourceforge.net),但我不知道它有多成熟(版本0.99)。配置中的参数列表也有点复杂(需要编辑参数数量)。
    2. winrun4j(http://winrun4j.sourceforge.net),但我不知道它有多成熟(版本0.45)。此外,它还需要一个特殊的类来作为服务。
    3. 我也试着看看:

      1. YAJWS(http://yajsw.sourceforge.net/)太大(30mb),无法使用自定义文件布局。
      2. 高级安装程序(http://www.advancedinstaller.com)太大(50mb)。
      3. nssm(http://nssm.cc/)将注册表中的启动参数(无配置)
      4. winsw(https://kenai.com/projects/winsw)。net必需,在流程终止后停止
      5. commons-daemon,procrun(http://commons.apache.org/proper/commons-daemon/index.html)在注册表中存储启动参数(无配置),无法理解该产品,我认为这很复杂。
      6. jsmooth(http://jsmooth.sourceforge.net)复杂而旧(2007年最新更新)
      7. javaservice(http://forge.ow2.org/projects/javaservice/)old(2006年上次更新)
      8. runasservice(http://runasservice.sourceforge.net/)需要.net
      9. windows rktools - sc,instsrv,srvany(http://support.microsoft.com/?scid=kb%3Ben-us%3B137890&x=16&y=7) - 在注册表中存储启动参数(无配置)
      10. jwrapper(http://www.jwrapper.com/)似乎不是我需要的。它使用JRE在exe文件中打包java程序。它与Windows服务无关。
      11. firedaemon(http://www.firedaemon.com/)不是免费的。也许它不是我需要的。
      12. launch4j(http://launch4j.sourceforge.net/)很酷的能力"搜索或下载java"。也许我添加这样的东西来简化安装,但它仍然不是关于subj。
      13. Java服务包装器(http://wrapper.tanukisoftware.com/)对win64不可用。
      14. 请告诉我哪些包装适合我的需求?或者我认为上面的包装有问题,有些适合我的需要?

1 个答案:

答案 0 :(得分:1)

我不确定JWrapper是否会以你想要的方式满足所有要求,例如1和2,因为而不是你决定它是如何进行启动的,以及它放置的东西等JWrapper改为自己处理这些东西方式,但它确实为win / mac / linux生成可执行文件,更重要的是它支持Windows服务安装以及macos和linux守护程序安装:

http://www.jwrapper.com/guide-installing-a-service.html

服务支持虽然是付费许可证,但免费版本目前不支持它。

披露:我为JWrapper工作