手把手教你tomcat全部知识点(2)——解决tomcat9w.exe不能使用问题

有任何问题,都可以私信博主,共同探讨学习。


@TOC


前言

上篇文章已经讲解了如何快速启动tomcat,以及启动过程中可能遇到的问题和解决方法。

本篇文章更进一步,介绍如何为tomcat创建服务,从而使tomcat可以通过tomcat9w.exe等可视化页面启动。


一、为tomcat创建服务,解决tomcat9w.exe不能使用的问题

重要的提示重复三遍:创建服务前,不要把tomcat目录放在c盘!不要把tomcat目录放在c盘!不要把tomcat目录放在c盘!

前面的启动方式,不论tomcat放在哪里都是没有影响的,但是创建服务时,很容易设计文件权限问题,所以不要放在c盘。免得出现错误,需要去排查。

1.1.创建服务:

很多人通过下载tomcat压缩包,无法使用tomcat9w.exe管理tomcat的原因就是没有正确创建tomcat的服务。

打开tomcat,打开根目录下的bin目录,查看是否有service.bat文件,如果没有,重新到官网下载新的tomcat。一切正常,运行命令创建服务:

c 复制代码
service.bat install //创建默认的Tomcat服务名

service.bat install myTomcat //创建服务名为myTomcat的服务

如果直接这样创建服务,服务会创建成功,但是无法启动。

因为缺少了JAVA_HOME,注意,这里不需要CATALINA相关的配置。服务启动时,如果找不到tomcat相关目录,会自动寻找当前的根目录。

因为缺少了JAVA_HOME和JRE_HOME,在service.bat中维护:

c 复制代码
set "JAVA_HOME=F:\test\jdk1.8.0_202"

然后先删除上面的tomcat9服务,通过bin目录进入cmd:

刷新进程页面,发现服务已经被删除。如果你的服务没有被删除,只是变为被禁用,那说明你权限有问题,注销电脑重新进入系统,一般会正常显示。

后续操作想要表现正常,需要可以把tomcat放到C盘外,或者通过管理员权限进入cmd。

再重新创建服务,注意是在bin目录下:

发现服务成功创建:

1.2启动tomcat9w.exe

打开tomcat9w.exe,点击start,tomcat成功启动:

如果在这一步启动失败,可能是以下几个原因:

  1. 已经存在启动的tomcat或其他进程,占用默认的8080端口

  2. service.bat中的JAVA_HOME配置有误

  3. 不是通过进入bin目录后,在bin目录下执行的service.bat。

上面的情况基本覆盖百分之百的场景。

但有些同学的专业就是运维,不只是要使用,还要开发工具管理tomcat,这时候就会遇到极个别的场景------通过service的绝对路径"F:\test\apache-tomcat-9.0.100\bin\service.bat"创建服务。这样创建的服务,就又会遇到上篇文章讲到的问题,找不到tomcat对应的资源。

解决办法很简单,在service.bat脚本中,除了维护JAVA_HOME,还要维护CATALINA_HOME:

c 复制代码
set "JAVA_HOME=F:\test\jdk1.8.0_202"
set "CATALINA_HOME=F:\test\apache-tomcat-9.0.100"

维护好后,记得删除原来的服务,然后通过任何目录进入cmd,都可以正常创建tomcat服务。

通过博主上篇文章和本篇文章可以得出结论,只有在其他和tomcat不相干的目录环境下,启动tomcat时,才需要维护CATALINA_HOME,告知程序tomcat的资源存放目录。

而且和tomcat目录相关的只需要设置这一个参数,不要各种CATALINA_XXX都设置,设置一个,软件会自动生成。

二、tomcat日志简述

不管新手还是熟手,只要是陌生的环境,那肯定都容易遇到这样那样的问题,因为很多配置和电脑(服务器)的实际情况有关,比如已占用端口、环境变量等。

所以对于大部分人来说,部署工作最重要的内容就是,你要了解bug并快速解决bug。以下面场景为例:

控制台看着一切都正常,但是就是启动不成功,浏览器打开localhost:8081,提示:

了解tomcat启动,最重要的就是学会查看log文件。

找到tomcat下的log文件夹,查看catalinia相关log文件: 打开后,查看有用信息,发现:java.net.BindException: Address already in use : JVM_Bind 这意思就很明显了,说明端口占用了,在IDE中集成的tomcat会很明确在控制台打印出端口占用的错误,自己启动tomcat,就需要去日志文件里找错误信息,道理是一样的。

在tomcat中部署前后端项目后,tomcat的错误、项目运行错误等日志都会在catalina中显示,所以查看catalina.log,筛选错误信息,是熟练使用tomcat的基础。


总结

tomcat绿色版的制作方法,在本地创建服务、删除服务等功能,博主都会放到个人工具里,可以通过小程序------中二少年工具箱获取。或者通过中二少年学编程的个人主页联系我。

有任何前端项目、demo、教程需求,都可以联系博主,博主会视精力更新,免费的羊毛,不薅白不薅!~

如果看到这里仍然觉得文章内容无用的,不要再继续阅览,我怕你打死博主!!!

本文要点记录:

  1. tomcat9w.exe不能使用,说明tomcat服务没有正确创建。

  2. 创建服务,需要在service.bat脚本中维护set "JAVA_HOME=F:\test\jdk1.8.0_202"

  3. 创建服务:service.bat install

  4. 通过service.bat的绝对路径创建服务,例如:F:\test\apache-tomcat-9.0.100\bin\service.bat install,必须维护:set "CATALINA_HOME=F:\test\apache-tomcat-9.0.100"

  5. 看到这里都不点赞的,祝你小jj缩短两厘米。

相关推荐
行者-全栈开发2 天前
【码动四季·秋】把 Spring Boot 的 Tomcat 换成 Undertow:一次容器替换的三处暗坑
spring boot·tomcat·容器化·依赖管理·undertow
宁波阿成3 天前
CentOS 7 环境下 Tomcat 8.5 升级至 9.0.123 操作总结
linux·centos·tomcat
行者-全栈开发3 天前
【Java中间件】CVE-2026-34486:Tomcat EncryptInterceptor 补丁绕过修复指南
tomcat·cve-2026-34486·encryptintercep·会话复制·集群安全·补丁绕过·cwe-311
景熙55234 天前
2.什么是业务后台系统
java·spring·tomcat·mybatis·jdbc
无巧不成书02184 天前
Tomcat部署JSP文件完整指南:手动部署+IDEA工程化实现 附404访问错误全排查
java·ide·windows·tomcat·intellij-idea·js
weixin_BYSJ19875 天前
电竞先锋网站---附源码02032
java·vue.js·spring boot·python·django·tomcat·php
2301_32241428046 天前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
BioRunYiXue7 天前
使用docker分析高通量测序数据
java·数据库·人工智能·spring cloud·docker·tomcat·html
paopaokaka_luck8 天前
美食推荐系统(协同过滤算法推荐、AI助手、HanLP中文分词、 ECharts可视化分析、菜谱学习与话题交流)
java·spring boot·mysql·tomcat·echarts
鬼手点金8 天前
单轮对话:最简单的 API 调用
java·服务器·前端·javascript·react.js·servlet·tomcat