8

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

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

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

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

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

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

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

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

我尝试通过不同的包装来寻找并有点累。到目前为止最适合的是:

  1. jslwin(http://jslwin.sourceforge.net),但我不知道它有多成熟(0.99版)。配置中的参数列表也有点复杂(需要编辑参数数量)。
  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 ) 将启动参数存储在注册表中(无配置),无法理解这个产品,我认为它很复杂。
  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 不是免费的。

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

4

2 回答 2

2

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

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

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

于 2016-04-08T21:31:01.237 回答
1

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

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

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

披露:我为 JWrapper 工作

于 2014-10-23T12:32:46.450 回答