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 Files\Java\jdk1.8.0_112\bin\java.exe
    nssm set exam-api AppParameters -jar exam-api.jar --server.port=9090
    nssm set exam-api AppDirectory D:\test
    nssm set exam-api AppStdout D:\test\exam-api.log
    nssm set exam-api AppStderr D:\test\error.log
    nssm start exam-api
    

    直接编写一个批处理文件写入上述,用管理员运行就会生成一个服务,具体每个参数的含义可以参考上边图形化的参数

winsw

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

java项目打包windows服务相关推荐

  1. ASP.NET Core项目基于Windows 服务的打包托管

    1. 工程创建 工程目标框架可为 .NetFramework 或 .NetCore,模板为 .NetCore下的API工程,正常编写工程代码即可 2.转换项目为Windows服务 修改工程的 .csp ...

  2. 使用 GraalVM 将基本的 Java 项目打包成 EXE

    使用 GraalVM 将基本的 Java 项目打包成 EXE GraalVM 的环境搭建 将基本的 Java 项目打包成 EXE 将 JAR 转化为 EXE GraalVM 与 Java 中其它打包成 ...

  3. Java项目打包成exe

    windows平台下,eclipse的Java项目打包成exe教程,超详细-- 一,在eclipse开发平台下开发好Java项目(无错误,并可正确运行),首先要把Java项目打包成.jar文件.如下图 ...

  4. 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题

    解决Spring的java项目打包后执行出现"无法读取方案文档..."."原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是..."问题 ...

  5. 如何注册java程序为windows服务

    最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在晚上17 点到23 点25 分才上网,到了23 ...

  6. Java项目打包成exe的详细教程

    Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1. 利用Eclipse先把Java项目先打成jar包 2. 利用exe4j工具把jar包转成exe 这里以Java项目 ...

  7. 把java项目打包成安装包

    把Java的项目环境和可执行的EXE文件打包成安装包 把java项目打包成可执行的exe文件请看我这边文章:CSDN 1.需要准备3个应用 7z用于把项目目录打包成* .7z格式的压缩文件 7zsfx ...

  8. 将Java程序转换为Windows服务 作者:IT168 seasky 2007-09-19

    [IT168 专稿] 一.概述 现在Java语言越来越受到程序员的关注.和Java相关的应用也越来越多.虽然Java是跨平台语言,但在国内有很多的应用都是运行在Windows下的.尤其是一些服务类程序 ...

  9. 老生常谈,打包windows服务安装包

    搞.net 开发的不可避免的要做打包程序的工作,而其工作过程甚是枯燥乏味,从vs2010以后微软干脆去掉了打包工程的创建模版,取而代之的是用InstallShield这个商业化工具,默认只支持免费版本 ...

  10. Crmeb Java 项目打包可运行jar文件

    Crmeb Java 项目打包可运行jar文件 本地已经运行过的同学直接配置prod环境的yml文件后直接mvn install 打包即可. ⏬下载的源码,并导入开发工具 解压后的代码包内容 源码包基 ...

最新文章

  1. Android自动化测试之路——Provider(一)
  2. 关于Kafka 的 consumer 消费者手动提交详解
  3. HTML的文本中只允许有日期输入
  4. python中反斜杠b_Python bytes 反斜杠转义问题解决方法
  5. vscode 推荐premiter_vscode 有哪些让人眼前一亮的插件?
  6. base64编码格式
  7. html5 PHP 分片上传,H5分片上传含前端JS和后端处理(thinkphp)
  8. mysql导入sql文件,乱码,一个例子
  9. 一个字同时设置了粗体斜体,哪个先生效?
  10. 见缝插针的人_能让人瞬间就哭的句子,字字扎心,催泪无底线!
  11. 自旋玻璃(spin glass)、自旋冰(spin ice)和量子自旋液体(quantum spin liquid)(之一)
  12. STM32cubemx教程及STM32入门(一)
  13. 图灵奖得主都写过哪些书?
  14. 求解Ax=b的克莱默法则
  15. 《西部世界》暗示了大数据人工智能什么
  16. <C++>运算符重载完结,详解赋值,关系,函数调用运算符
  17. java 集成极光推送
  18. windows bat更改系统时间 同步internet时间
  19. Java基础知识(九) 容器
  20. Flutter图片加载数据

热门文章

  1. 数字地形模型(DTM)与地形分析 ( 来自:86VR)
  2. 【ArcGIS】02 植被分类
  3. java实现京东登陆界面_java实现京东云第三方登录
  4. 一文读懂民航客机飞控系统
  5. 官网和网盘,VS2015安装详细教程(带图解+下载地址+超详细)
  6. MTK平台sip信令的查看和volte的故障
  7. 松下服务器型号说明,透析数码相机型号命名规则(松下篇
  8. Word中批量删除引用符号
  9. 可达性分析之三色标记算法详解
  10. 泛函分析复习笔记(二)线性算子与线性泛函