【问题标题】:Simple and flexible method to run java as a windows service将java作为windows服务运行的简单灵活的方法
【发布时间】:2014-04-08 08:32:14
【问题描述】:

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

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

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

  3. 没有依赖项(.net、python 等)。我不想扩展我的程序的要求。

  4. 对所有 Windows 操作系统免费,包括 win64。

  5. 简单轻便。我的所有 3rd 方 jar 程序的大小为 12Mbytes。我不想添加 20Mbytes 包装器。

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

  7. 最好是单个 exe 文件,适用于所有 windows 平台。

我尝试查看不同的包装,但有点累。到目前为止最适合的是:

  1. jslwin (http://jslwin.sourceforge.net),但我不知道它有多成熟(0.99 版)。另外config中的参数列表有点复杂(需要修改参数数量)。
  2. winrun4j (http://winrun4j.sourceforge.net),但我不知道它有多成熟(0.45 版)。它还需要一个特殊的类来作为服务工作。

我也试试看:

  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) store launch parameters in registry(no config), 看不懂这个产品,我觉得很复杂。
  6. jsmooth (http://jsmooth.sourceforge.net) 复杂而陈旧(2007 年最后更新)
  7. javaservice (http://forge.ow2.org/projects/javaservice/) 旧(最后一次更新 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 将 java 程序打包在 exe 文件中。这与 Windows 服务无关。
  11. firedaemon (http://www.firedaemon.com/) 不是免费的。也许这不是我需要的。
  12. launch4j (http://launch4j.sourceforge.net/) 很酷的能力“搜索或下载java”。也许我添加了这样的东西来简化安装,但它仍然不是关于主题。
  13. Java 服务包装器 (http://wrapper.tanukisoftware.com/) 不适用于 win64。

请告诉我哪些包装适合我的需要?或者我认为上面的包装器有误,其中一些适合我的需要?

【问题讨论】:

    标签: java windows windows-services winrun4j yajsw


    【解决方案1】:

    这些年来我也遇到过类似的问题。并不是它们都逊色,而是它们都很难与您自己的项目很好地集成。

    您可能想查看 stork:https://github.com/fizzed/stork

    它将有助于为您的 Java 控制台或守护程序应用程序创建启动器,并且它们可以在所有主要平台上运行。如果您想将其与现有的构建过程联系起来,还有一个 maven 插件。

    【讨论】:

      【解决方案2】:

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

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

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

      披露:我为 JWrapper 工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-22
        • 2014-06-21
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 2018-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多