手把手教你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缩短两厘米。

相关推荐
中东大鹅12 小时前
从0开始,手搓Tomcat
前端·tomcat·firefox
小布不吃竹16 小时前
手写简易Tomcat核心实现:深入理解Servlet容器原理
java·servlet·tomcat
秋说1 天前
【Java开发指南 | 第三十五篇】Maven + Tomcat Web应用程序搭建
java·tomcat·maven
m0_748240021 天前
linux 设置tomcat开机启动
linux·运维·tomcat
A Runner for leave1 天前
Servlet理论和tomcat(2)http
http·servlet·tomcat
Alt.92 天前
JavaWeb基础一(Tomcat、Maven)
tomcat·maven·web
Warren982 天前
MySQL DDL数据定义语句
数据库·spring boot·笔记·mysql·oracle·tomcat·mybatis
千航@abc2 天前
tomcat单机多实例部署
java·服务器·tomcat
川石课堂软件测试2 天前
涨薪技术|Docker容器下安装Nginx,Mysql,Redis,Tomcat详细教程
redis·功能测试·mysql·nginx·docker·tomcat
2301_779503762 天前
tomcat的web管理
服务器·前端·tomcat