当前位置: 首页 > news >正文

在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
    
http://www.xdnf.cn/news/1387513.html

相关文章:

  • stylelint在项目中使用
  • 构筑沉浸式3D世界:渲染、资源与体验的协同之道
  • 牛客网 DP35 二维前缀和
  • 【算法】链表专题
  • C#连接SQL-Server数据库超详细讲解以及防SQL注入
  • 零基础json入门教程(基于vscode的json配置文件)
  • 序列化和反序列的学习
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(五)
  • Word - Word 查找文本中的特定内容
  • Redis vs Elasticsearch:核心区别深度解析
  • c++二叉搜索树
  • 在Linux的环境下安装GitLab(保姆级别)
  • Ubuntu下的压缩及解压缩
  • Llama-index学习文档
  • AI驱动万物智联:IOTE 2025深圳展呈现无线通信×智能传感×AI主控技术融合
  • 【Python办公】CSV按列去重工具
  • LangChain实战(三):深入理解Model I/O - Prompts模板
  • 聊聊Prompt Engineering (提示词工程)
  • Rust Web框架Axum学习指南之响应和异常封装
  • websocket建立连接过程
  • AI供应链优化+AI门店排班:蜜雪冰城降本20%、瑞幸提效的AI商业落地实战
  • 港科大开放世界长时域具身导航!LOVON:足式机器人开放词汇目标导航
  • LeetCode Hot 100 Python (1~10)
  • 1 分钟 Maya 动画渲染要多久?5 天还是 5 小时
  • linux系统学习(15.启动管理)
  • 第一百零二章:AI的“未来电影制片厂CEO”:多模态系统落地项目实战(完整 AI 视频创作平台)
  • 极飞科技AI智慧农业实践:3000亩棉田2人管理+产量提15%,精准灌溉与老农操作门槛引讨论
  • 组件的生命周期:`useEffect` 的威力与副作用处理
  • 随机森林的 “Bootstrap 采样” 与 “特征随机选择”:如何避免过拟合?(附分类 / 回归任务实战)
  • 华为云CCE的Request和Limit