将jar作为NT服务包装,无访问目标系统



我有一个Java应用程序包装为可运行的JAR,我需要在最终用户Windows Machines上安装。

该应用程序必须具有弹性且不引人注目,我只能为用户提供链接,他们希望下载和安装它(Windows方法,就像NSIS一样)。安装后,它应自动运行为Windows Service,必须自动配置以重新启动故障。

我研究了这些包装框架:

  • 另一个Java服务包装器(YAJSW) - 尝试过,但似乎需要访问目标系统才能配置和安装服务(运行我的jar并检查其pid,然后运行genconfig.bat,然后修改,然后修改配置脚本,最后安装为服务)。
  • Tanuki的Java服务包装纸(JSW) - 类似于Yajsw?
  • Apache Commons守护程序 - 尚未尝试过
  • 启动4J- Yajsw使用的"用于在Windows上生成Wrapper.exe"?
  • 非吸毒服务经理(NSSM) - 刚刚找到了这个

他们中的任何一个都支持我的场景,还是可以与安装系统集成以完成它?

如果无法实现这一目标,我可能会退缩这些选项:

  • 用.NET或C(Windows API)重写该应用程序,该应用程序与服务设施具有本机集成。
  • 提供可运行的JAR以供下载,并告诉用户将其放入启动文件夹中(类似效果)。

您会建议什么?

我刚将jar包裹在窗口中,并使用laining4j的maven插件执行。

然后将可执行文件分发给最终用户的Windows启动文件夹,并结合启动4J的选项,在崩溃时自动重新设备的选项删除了以Windows服务运行该程序的需求。

最新更新