根据 Apache 网站http://commons.apache.org/proper/commons-daemon/procrun.html,
"Procrun 是一组允许 Windows 用户打包的应用程序
(主要是)Java 应用程序(例如 Tomcat)作为 Windows 服务。
服务可以设置为机器启动时自动启动
将在没有用户登录机器的情况下继续运行。”
Procrun 包含两个应用程序,Prunmgr 和 Prunsrv。 Prunmgr 是一个用于监视和配置 procrun 服务的 GUI 应用程序。
Prunsrv 是一个服务应用程序,用于将应用程序作为服务运行。它可以将任何应用程序(不仅仅是 Java 应用程序)转换为作为服务运行。
在此处下载 Prunmgr 和 Prunsrv 的位置:
http://www.apache.org/dist/commons/daemon/binaries/windows/
注意:您也可以从 Tomcat 网站下载这两个可执行文件。 http://tomcat.apache.org/download-90.cgi 但是,您将找不到您希望看到的文件。 Tomcat 使用相同的文件,但是他们只是将它们重命名为其他文件。如果要使用 Tomcat 版本 9,Prunsrv 为 Tomcat9.exe,Prunmgr 为 Tomcat9w.exe
对于我的基本示例,我在 Eclipse 中创建了一个示例项目,并使用了来自以下来源的示例代码:http://web.archive.org/web/20090228071059/http://blog.platinumsolutions.com/node/234
注意:我确实必须安装 JDK 7,因为 Eclipse Mars 需要 JDK 7。
然后我需要使用 javac 可执行文件将我的 Java 文件转换为类文件。获得类文件后,我创建了一个如下图所示的目录结构。请注意,我将 Prunmgr 重命名为 myServicew.exe 并将 Prunsrv 重命名为 myService.exe。
E:\MyService
\bin
\myService.exe
\myServicew.exe
\classes
\MyService.CoolService.MyService.class
\logs
使用命令行或 Windows Powershell,导航到您的 bin 目录并使用以下命令安装 Windows 服务:
myService.exe //IS//MyService --Install=E:\MyService\bin\myService.exe --Description="My Java Service" --Jvm=C:\glassfish4\jdk7\jre\bin\server\jvm.dll --Classpath=E:MyServiceclasses --StartMode=jvm --StartClass=MyService.CoolService.MyService --StartMethod=windowsService --StartParams=start --StopMode=jvm --StopClass=MyService.CoolService.MyService --StopMethod=windowsService --StopParams=stop --LogPath=E:\MyService\logs --StdOutput=auto --StdError=auto
您现在应该在 Windows 服务中看到您的服务。