【发布时间】:2014-04-08 08:32:14
【问题描述】:
我阅读了关于启动 java 作为 Windows 服务包装器的 SO q&a,但找不到/选择适合我要求的产品:
Wrapper 从配置文件中读取所有 java 启动参数。在注册表中必须只有运行包装器本身的命令 - exe 的路径和配置的路径。总是授予管理员权限以更改注册表中的应用程序参数是不舒服的。
应用程序的工作目录和路径也必须在配置中。我想将所有包装文件深入到程序中,因为用户对此不感兴趣。
没有依赖项(.net、python 等)。我不想扩展我的程序的要求。
对所有 Windows 操作系统免费,包括 win64。
简单轻便。我的所有 3rd 方 jar 程序的大小为 12Mbytes。我不想添加 20Mbytes 包装器。
如果应用进程终止,则自动重启。
最好是单个 exe 文件,适用于所有 windows 平台。
我尝试查看不同的包装,但有点累。到目前为止最适合的是:
- jslwin (http://jslwin.sourceforge.net),但我不知道它有多成熟(0.99 版)。另外config中的参数列表有点复杂(需要修改参数数量)。
- 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) store launch parameters in registry(no config), 看不懂这个产品,我觉得很复杂。
- 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。
请告诉我哪些包装适合我的需要?或者我认为上面的包装器有误,其中一些适合我的需要?
【问题讨论】:
标签: java windows windows-services winrun4j yajsw