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

相关推荐
追逐时光者5 小时前
一款使用 C# 编写专为 Windows 11 打造的文件资源管理器增强工具!
后端·.net
风象南5 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端
皮皮林5517 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河7 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
JavaGuide10 小时前
7 道 RAG 基础概念知识点/面试题总结
前端·后端
桦说编程10 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
格砸11 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
蝎子莱莱爱打怪11 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
躺平大鹅12 小时前
Java面向对象入门(类与对象,新手秒懂)
java