我阅读了关于启动 java 作为 Windows 服务包装器的 SO q&a,但找不到/选择适合我要求的产品:
Wrapper 从配置文件中读取所有 java 启动参数。在注册表中必须只有运行包装器本身的命令 - exe 的路径和配置的路径。始终授予管理员权限以更改注册表中的应用程序参数是不舒服的。
应用程序的工作目录和路径也必须在配置中。我想将所有包装文件深入到程序中,因为用户对它不感兴趣。
没有依赖项(.net、python 等)。我不想扩展我的程序的要求。
每个 Windows 操作系统都免费,包括 win64。
简单轻便。我的所有 3rd 方 jar 程序的大小为 12Mbytes。我不想添加 20Mbytes 包装器。
如果应用程序进程死亡,则自动重启。
最好是适用于所有 Windows 平台的单个 exe 文件。
我尝试通过不同的包装来寻找并有点累。到目前为止最适合的是:
- jslwin(http://jslwin.sourceforge.net),但我不知道它有多成熟(0.99版)。配置中的参数列表也有点复杂(需要编辑参数数量)。
- winrun4j(http://winrun4j.sourceforge.net),但我不知道它有多成熟(0.45版)。它还需要一个特殊的类来作为服务工作。
我也尝试或查看:
- YAJWS ( http://yajsw.sourceforge.net/ ) 太大 (30mb),无法使其与自定义文件布局一起使用。
- 高级安装程序 ( http://www.advancedinstaller.com ) 太大 (50mb)。
- nssm ( http://nssm.cc/ ) 在注册表中存储启动参数(无配置)
- winsw ( https://kenai.com/projects/winsw ) .net 需要,在进程终止后停止
- commons-daemon, procrun ( http://commons.apache.org/proper/commons-daemon/index.html ) 将启动参数存储在注册表中(无配置),无法理解这个产品,我认为它很复杂。
- jsmooth ( http://jsmooth.sourceforge.net ) 复杂而陈旧 (最后更新 2007)
- javaservice ( http://forge.ow2.org/projects/javaservice/ ) 旧的 (最后更新 2006)
- runasservice ( http://runasservice.sourceforge.net/ ) 需要 .net
- windows rktools - sc、instsrv、srvany ( http://support.microsoft.com/?scid=kb%3Ben-us%3B137890&x=16&y=7 ) - 在注册表中存储启动参数(无配置)
- jwrapper ( http://www.jwrapper.com/ ) 似乎不是我需要的。它使用 JRE 将 java 程序打包在 exe 文件中。这与 Windows 服务无关。
- firedaemon ( http://www.firedaemon.com/ ) 不是免费的。也许这不是我需要的。
- launch4j(http://launch4j.sourceforge.net/)很酷的能力“搜索或下载java”。也许我添加了这样的东西来简化安装,但它仍然不是关于主题的。
- Java 服务包装器 ( http://wrapper.tanukisoftware.com/ ) 对于 win64 不是免费的。
请告诉我哪些包装适合我的需要?或者我认为上面的包装器是错误的,其中一些适合我的需要?