NSSM启动tomcat部署Java程序

关于NSSM启动Springboot打成的jar包服务,可看我原来的文章

WIndows服务器中使用nssm启动多个Springboot服务

tomcat启动的服务,会有一个命令对话框,对话框关闭了,程序也就推出了,为了不显示命令对话框,以服务的方式注册到window的服务表,可以使用NSSM.

NSSM 启动 Tomcat 时,不需要设置额外的 Arguments。

分析TOMCAT的startup.bat:

  1. 如果脚本硬编码了 Tomcat 路径:
bash 复制代码
   set "CATALINA_HOME=D:\SCM\SCM_TH"
   set "CATALINA_BASE=D:\SCM\SCM_TH"
  1. 脚本会调用
bash 复制代码
%CATALINA_HOME%\bin\catalina.bat start

NSSM 配置步骤:

  1. 基本配置:

Application 标签页:

bash 复制代码
  Path: D:\SCM\SCM_TH\bin\startup.bat
  Startup directory: D:\SCM\SCM_TH\bin
  Arguments: (留空)
  1. 或者直接使用 catalina.bat:

如果你想更直接的控制,也可以这样配置:

bash 复制代码
Application 标签页:
  Path: D:\SCM\SCM_TH\bin\catalina.bat
  Startup directory: D:\SCM\SCM_TH\bin
  Arguments: start
  1. 推荐使用 catalina.bat 的原因:

· 更简洁直接

· 避免 startup.bat 中的 pause 命令影响服务启动

· 更好的控制启动参数

  1. 完整 NSSM 配置示例:
bash 复制代码
nssm install SCM_TH "D:\SCM\SCM_TH\bin\catalina.bat"
nssm set SCM_TH AppDirectory "D:\SCM\SCM_TH\bin"
nssm set SCM_TH AppParameters "start"
nssm set SCM_TH AppStdout "D:\SCM\SCM_TH\logs\stdout.log"
nssm set SCM_TH AppStderr "D:\SCM\SCM_TH\logs\stderr.log"
  1. 如果需要在 Arguments 中添加其他参数:

如果你的 Tomcat 需要额外的 JVM 参数,可以这样配置:

bash 复制代码
Arguments: start -Dsome.property=value

或者通过环境变量方式在 NSSM 的 Environment 标签页中设置:

bash 复制代码
CATALINA_OPTS=-Xms512m -Xmx1024m -Dfile.encoding=UTF-8

建议:

最简单的方式就是:

bash 复制代码
· Path: D:\SCM\SCM_TH\bin\catalina.bat
· Startup directory: D:\SCM\SCM_TH\bin
· Arguments: run

这样配置后,NSSM 会正确启动你的 Tomcat 服务。

实际操作日志如下

我的电脑时64位的,nssm路径是D:\nssm-2.24\win64,打开cmd

\>cd D:\nssm-2.24\win64

D:\nssm-2.24\win64>nssm install

执行上述命令,会打开配置对话框,填写以下信息

Path: D:\SCM\SCM_TH\bin\catalina.bat

Startup directory: D:\SCM\SCM_TH\bin

Arguments: run

保存成功后命令行就会出现以下成功的日志

Service "SCMTH" installed successfully!

D:\nssm-2.24\win64>net start SCMTH

SCMTH 服务正在启动 .

SCMTH 服务已经启动成功。

D:\nssm-2.24\win64>net stop SCMTH

.

SCMTH 服务已成功停止。

D:\nssm-2.24\win64>net start SCMTH

SCMTH 服务正在启动 .

SCMTH 服务已经启动成功。

D:\nssm-2.24\win64>

D:\nssm-2.24\win64>nssm edit SCMTH

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商