java项目打包windows服务

java项目打包为windows服务

在部署项目的时候,如果不对我们的项目进行服务化的话,一方面发布的时候极其的繁琐,另一方方面也会使访问速度变慢。

下面这两种方式是最好用的两种方式

NSSM

nssm是一个服务封装程序,可以把可执行文件封装为windows服务,其对比其他方案的优点有:

    可以输出日志文件,把控制台当成一个简单的日志系统 随时修改服务属性 无需其他额外环境 不需要.net等其他环境的支持

使用

  1. 下载 这是一个官方的,下载最新的版本就行
  2. 解压后把nssm.exe复制出来,建议放到与jar包同级目录下(下文默认放在了一起)
  3. 编写执行脚本,这里有两种方式 如果你配置了java环境变量,直接把你要执行的脚本写成一个批处理脚本.bat 然后在当前目录下使用管理员权限执行nssm install path就直接选你的批次处理脚本,service name就是你服务的名称,startup dict 就写你的java包所在的目录 如果你没有配置java环境变量 path就指向你的java地址,startup dict 就写你的java包所在的目录, argument就是后面的参数,service name就是你服务的名称
  4. 设置日志输出目录 nssm提供了控制台日志的输出与错误日志的输出
  5. 设置日志回滚策略
  6. 设置描述
  7. 设置环境变量
  8. 启动服务 点击install service 安装服务,在当前目录用管理员权限打开命令行执行nssm start 服务名 这时候就完成了对jar包封装服务的全过程,下面是一些不常用的进阶内容

其他进阶内容

    停止 编辑 删除服务 nssm stop 服务名 nssm edit 服务名 nssm remove 服务名 使用nssm set 使用nssm 的set 可以直接使用批处理文件来生成一个服务,具体代码如下 nssm install exam-api C:Program FilesJavajdk1.8.0_112injava.exe nssm set exam-api AppParameters -jar exam-api.jar --server.port=9090 nssm set exam-api AppDirectory D: est nssm set exam-api AppStdout D: estexam-api.log nssm set exam-api AppStderr D: esterror.log nssm start exam-api 直接编写一个批处理文件写入上述,用管理员运行就会生成一个服务,具体每个参数的含义可以参考上边图形化的参数

winsw

winsw是一款可将可执行程序安装成Windows Service的开源小工具,其唯一不足的就是需要电脑有.NET framework

经验分享 程序员 微信小程序 职场和发展