在Windows系统上将Java的.jar文件部署为服务
使用 Apache Commons Daemon (Procrun)
下载工具
从Apache Commons Daemon官网下载最新版本的commons-daemon-{version}-bin-windows.zip
,解压后获取prunsrv.exe
(服务管理程序)和prunmgr.exe
(配置工具)。
配置服务参数
通过命令行或配置文件指定服务属性:
<service><id>MyJavaService</id><name>My Java Service</name><description>Custom Java Service</description><executable>java</executable><arguments>-jar "C:\path\to\your-app.jar"</arguments><logpath>C:\logs</logpath><logmode>rotate</logmode>
</service>
安装服务
以管理员身份运行CMD执行:
prunsrv.exe //IS//MyJavaService ^
--DisplayName="My Java Service" ^
--Description="Custom Java Service" ^
--Startup=auto ^
--Classpath="C:\path\to\your-app.jar" ^
--StartMode=jvm ^
--StartClass=com.example.MainClass ^
--StartMethod=main
管理服务
- 启动:
prunsrv.exe //ES//MyJavaService
- 停止:
prunsrv.exe //SS//MyJavaService
- 卸载:
prunsrv.exe //DS//MyJavaService
使用 NSSM (Non-Sucking Service Manager)
下载安装
从NSSM官网下载并解压,以管理员身份运行CMD执行:
nssm install MyJavaService
GUI配置
在弹出的窗口中设置:
- Path:
C:\Program Files\Java\jdk-17\bin\java.exe
- Arguments:
-jar "C:\path\to\your-app.jar"
- Startup directory: JAR文件所在目录
启动服务
net start MyJavaService
日志查看
日志默认输出至:
C:\Windows\ServiceProfiles\LocalService\AppData\Local\nssm\logs\MyJavaService.log
关键配置注意事项
Java路径
确保使用绝对路径指向Java可执行文件,例如:
C:\Program Files\Java\jdk-17\bin\java.exe
JVM参数
在Arguments中添加内存配置:
-Xms256m -Xmx1024m -jar "C:\path\to\your-app.jar"
服务权限
如需访问网络或文件系统,在服务属性中设置运行账户为:
Local System
- 或指定域账户
调试建议
- 测试JAR运行:
java -jar your-app.jar
- 查看NSSM日志:
nssm logs MyJavaService
服务卸载方法
- Procrun:
prunsrv.exe //DS//MyJavaService
- NSSM:
nssm remove MyJavaService confirm