如何从 java 应用创建窗口服务
2022-08-31 05:45:51
我刚刚继承了一个java应用程序,需要将其作为服务安装在XP和vista上。自从我以任何形式使用Windows以来已经过去了大约8年,我从来没有创建过服务,更不用说像java应用程序这样的东西了(我有一个应用程序的jar和一个依赖jar - log4j)。使它作为服务运行所需的魔力是什么?我有源代码,所以代码修改,虽然最好避免,但也是可能的。
我刚刚继承了一个java应用程序,需要将其作为服务安装在XP和vista上。自从我以任何形式使用Windows以来已经过去了大约8年,我从来没有创建过服务,更不用说像java应用程序这样的东西了(我有一个应用程序的jar和一个依赖jar - log4j)。使它作为服务运行所需的魔力是什么?我有源代码,所以代码修改,虽然最好避免,但也是可能的。
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()”会导致错误。如果无法修改这些调用,请考虑创建一个引导程序类,该类可以调整这些调用以满足您的需求。