如何从 Java 应用程序创建 Windows 服务

新手上路,请多包涵

我刚刚继承了一个需要在 XP 和 vista 上作为服务安装的 java 应用程序。自从我以任何形式使用 Windows 已经有大约 8 年了,而且我从来不需要创建服务,更不用说像 java 应用程序之类的东西了(我有一个应用程序的 jar 和一个单一的依赖 jar - log4j )。使它作为服务运行所需的魔法是什么?我有源代码,因此可以进行代码修改,尽管最好避免。

原文由 ideasculptor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 731
2 个回答

Apache Commons Daemon 是一个不错的选择。它有用于 Windows 服务的 Procrun 和用于 unix 守护进程的 Jsvc 。它使用限制较少的 Apache 许可证,Apache Tomcat 将其作为自身的一部分在 Windows 和 Linux 上运行!让它工作有点棘手,但有一篇 详尽的文章 和工作示例。

除此之外,您可以查看 Apache Tomcat 中的 bin\service.bat 以了解如何设置服务。在 Tomcat 中,他们重命名了 Procrun 二进制文件(prunsrv.exe -> tomcat6.exe、prunmgr.exe -> tomcat6w.exe)。

我在使用 Procrun 时遇到了一些问题,您的启动和停止方法必须接受参数 (String[] argv)。例如“start(String[] argv)”和“stop(String[] argv)”可以工作,但“start()”和“stop()”会导致错误。如果您无法修改这些调用,请考虑制作一个可以处理这些调用以满足您需要的引导程序类。

原文由 mcdon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题