Tomcat 启动闪退问题解决集(八大类详细)

article/2025/9/18 1:50:20

Tomcat启动闪退问题解决集(八大类详细)

目录

一、Java环境不对,Tomcat 不同版本需要的Java环境不同。

二、环境变量没有配置好

?三、Tomcat端口被占用

四、配置文件编码问题

五、启动时需要的配置文件编写出错

六、部分相关文件丢失

七、免安装的tomcat闪退

八、修改配置文件setclasspath.bat

九、等待更新


Tomcat 启动时出现黑屏一闪而过的现象原因有很多,但通常都涉及几个方法:

一、Java环境不对,Tomcat 不同版本需要的Java环境不同。

51907a08897b4c3198d65c4ed87dd340.png

有时tomcat版本能够正常安装,但启动时检测到java 版本不对就会出现启动黑屏一闪而过的现象。例如:tomcat 10.1-M14版本能够在java version “1.8.0_131”下用命令提示符安装成功,运行时却出现启动黑屏一闪而过的现象,查了很久都没有发现原因,最近官方出了安装提示才明白问题出在运行需要Java 11 或更高版本环境。

检查Java版本是否适合安装,按windows + R 启用cmd命令,打开命令提示符,输入“java -version”,回车,出现jdk版本,

98db7b92f3b049a2aa0e68d6e67cfc3b.png

如果不适合,请先安装相应的Java版本。

当前Java SE Development Kit 最新版本是18.0.1.1

下载地址:Java Archive Downloads - Java SE 18
或http://openjdk.java.net/install/index.html

Java SE Development Kit 18.0.1.1

a9a3032652a5424a93df0f342459340d.png

二、环境变量没有配置好

Tomcat需要配置好JRE才能正常运行。一般情况下,启动闪屏崩溃是因为找不到JRE路径,也就是说环境变量在安装JDK的时候没有配置好。

检查jdk是否安装,按windows + R 启用cmd命令,打开命令提示符,进入命令提示符,输入“java -version”,回车,出现jdk版本,表示安装成功,检查版本是否合适,参考上文Java环境和tomcat版本对应关系。

检测jdk配置有没出错,可以在tomcat安装目录in下,startup.bat文件最后加上pause命令

91cf547a3f474cdcb164785164323a48.png

启动运行tomcat,黑屏会需要按任意键才结束如图:

bcdf298a32134a619ddee5ed424c0e22.png

如能如图正常显示Using路径,说明环境变量设置没有问题,可跳过此步骤。

如发现问题,可检查相关环境变量配置

358ef5546ca645af96e18b7461bb6ef7.png

① 配置环境变量,本机电脑—>属性—>高级—>点击环境变量
②在系统变量里点击新建—>添加变量:

③ 输入变量名,变量值:
变量名:CATALINA_HOME
变量值:c: tomcat10_021
(变量值为tomcat安装路径,就是你刚刚解压安装tomcat的那个文件夹路径)

ca84896e0cd64eaeaa48407ac0863f35.png

④ 在系统变量里找到Path,双击打开:

新建环境变量,输入:%CATALINA_HOME%in

或在原来path列表中添加%CATALINA_HOME%lib;%CATALINA_HOME%in

⑤打开cmd,选择以管理员的身份运行:(Windows键+R,输入cmd,回车)

⑥进入tomcat安装位置in目录,输入:startup,回车

⑦打开浏览器,输入:http://localhost:8080/
(出现以下页面,证明安装配置成功。)

4ede9bf695654567b5daec019c2645f7.png

三、Tomcat端口被占用

Tomcat默认需要使用8080等几个端口,如果端口被占用,tomcat启动时就会崩溃,此时需要查找是哪个进程占用了8080端口。

其实还可以通过查看Tomcat终端输出日志,找到Tomcat目录下的logs目录中catalina当天的日志,例如:catalina.2022-05-19.log文件,如果在日志出错信息中看到:Address already in use: bind说明是端口占用了。

  1. 在cmd中查看8080有没有被占用,找出占用8080端口的进程

按windows + R 启用cmd命令,打开命令提示符,

输入:netstat -ano | findstr “8080”

87edf5f106914d329ca9f71430b64de4.png

如果端口没有被占用,就会显示空值;

如果你修改过tomca t端口设置,请查找你的tomcat使用端口,例如,曾把tomcat端口修改成9080,此时查询9080端口使用情况的命令为:

输入:netstat -ano | findstr “9080”

89ce37792c174671be6c48cebc60dd1a.png

显示为9080端口被PID值为15316的进程所占用。

接下来可以在任务管理器里查看该PID值进程号所对应的进程:

任务管理器菜单栏中的点击【选项】——勾选” 【前端显示】。

任务管理器菜单栏中的点击-【查看】-【选择列】中勾选“PID”

4e5ddd28c93b4bf589d525a58b2ad7d8.png

发现占用9080端口,PID值为15316的进程为java.exe

3、判断该进程是否有用,如果没有用,接着直接右键结束该进程即可。

或者,直接在命令提示框界面输入要结束的PID值进程,例如:

要终止PID号为1196的进程,

可输入:Taskkill/PID 1196

a3b83ab0f6d941b68bbf5170fa172187.png

如果该进程确实有用不能结束,那么可考虑更换tomcat使用的端口

打开:Tomcat的安装目录 conf server.xml

找到下面这行代码:

<Connector port=“8080” protocol=“HTTP/1.1”

connectionTimeout=“20000”

redirectPort=“8443” />

8c22a5c440da4f0e8fee3a26197fc4cf.png

将8080端口改为你所需要的端口地址,例如,现在改为9080;

<Connector port=“9080” protocol=“HTTP/1.1”

connectionTimeout=“20000”

redirectPort=“8443” />

813132ab290d4a46a4e6caf083d8e76d.png

4、在Tomcat目录in中找到“startup.bat”启动Tomcat

5、然后打开浏览器,输入:http://localhost:9080,就可以发现Tomcat正常启动了。

5aee881ece364284ae24a0958c82f97b.png

除8080端口外Tomcat还会占用8005,8009和8443端口。如果这4个端口已被占用,可以修改为使用其它端口。详细见:Tomcat端口配置(详细)

四、配置文件编码问题

Tomcat启动时会调用几个相关配置文件,如果里面出现了不是UTF-8的字符,或者文件保存时的编码格式不是UTF-8,tomcat编译时就会出错。就算是注释行内也要仔细检查。

出错现象:

Tomcat出现启动时黑屏一闪而过的现象,查询catalina log日志,发现有以下出错信息:

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

30-May-2022 23:57:18.015 严重 [main] org.apache.catalina.startup.Catalina.start 无法启动服务器,服务器实例未配置

30-May-2022 23:57:44.468 警告 [main] org.apache.catalina.startup.Catalina.parseServerXml 无法从[此处路径省略confserver.xml]加载服务器配置

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。

分析:

查看相关的confserver.xml文件,发现是因为注释了一些代码,在代码行里加入了中文说明,所以会出现无效UTF-8 序列字节

解决方法:

删掉中文,改成英语或拼音注释。将文件保存支持UTF-8的格式。

重启tomcat后故障解决。

五、启动时需要的配置文件编写出错

所有相关的配置文件都要仔细检测,语法格式等出错都会出现tomcat启动后闪退的现象。例如是否按规范设置JAVA_HOME变量名,路径设置时 或 / 是否正确,注意路径设置时后面不用多加“” 或者 “;”…

有没有和防火墙或其他app冲突。

如果tomcat内存配置有误也会导致tomcat闪退(在Catalina文件里,内存配置有错误),解决办法:找到配置内存的语句,删除错误,重新配置。

六、部分相关文件丢失

因意外或其他原因,tomcat 或jdk的一些jar文件被打包成pack格式,造成tomcat 启动缺jar包,报错NoClassDefFound。
  解决:修复jdk,补回jar

七、免安装的tomcat闪退

免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。

原因:

在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了tomcat的闪退。

解决办法:

1.在已解压的tomcat的bin文件夹下找到startup.bat,右击->编辑。在文件头加入下面两行:

SET JAVA_HOME=D:Javajdk1.6.0_10 (java jdk目录)
SET TOMCAT_HOME=E: omcat-6.0.35 (解压后的tomcat文件目录)

2.同样的。在已解压的tomcat的bin文件夹下找到shutdown.bat,右击->编辑。在文件头加入下面两行:

SET JAVA_HOME=D:Javajdk1.6.0_10 (java jdk目录)
SET TOMCAT_HOME=E: omcat-6.0.35 (解压后的tomcat文件目录)

3.将你要发布/部署的web文件复制到tomcat的webapps目录下。

4.双击startup.bat即可启动tomcat,成功启动。

5.双击shutdown.bat即可停止tomcat。或者在已启动的tomcat窗口中直接ctrl+c也可停止tomcat。

此部分为转载,提供一种思路,有问题请联系原作者
原文地址:https://blog.csdn.net/qq_37647812/article/details/123063134

问题,
1. 免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。
2. 这里有时候修了原本的web目录,也会闪退

原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了tomcat的闪退。

解决办法一:
1. 去配置电脑的系统环境变量
(1) 新增系统变量 TOMCAT_HOME=D:Software omcat-8.5.31apache-tomcat-8.5.31
(2) 在path 目录中添加 %OMCAT_HOME%in

注意: 当然这里你的Java环境是已经配好的

解决办法二:

1.在已解压的tomcat的bin文件夹下找到startup.bat,右击->编辑。在文件头加入下面两行:

set JAVA_HOME=D:SoftwareJavajdk-11
set TOMCAT_HOME=D:Software omcat-8.5.31apache-tomcat-8.5.31

2.同样的。在tomcat的bin文件夹下找到shutdown.bat,右击->编辑。在文件头加入下面两行:

set JAVA_HOME=D:SoftwareJavajdk-11
set TOMCAT_HOME=D:Software omcat-8.5.31apache-tomcat-8.5.31

3.将你要发布/部署的web文件复制到tomcat的webapps目录下。
4.双击startup.bat即可启动tomcat,成功启动。

** 有时候如果启动闪退,只要运行一下 shutdown.bat 也可以解决下次启动时的闪退问题

此部分为转载,提供一种思路,有问题请联系原作者
原文地址:https://blog.csdn.net/pj598707063/article/details/125199164

八、修改配置文件setclasspath.bat

有些时候,我们可以通过修改配置文件setclasspath.bat解决tomcat闪退问题

方法:

1、----》进入Tomcat目录----》进入在bin目录

2、----》找到setclasspath.bat文件----》右键点击编辑

3、在该文件开头中加入 java_home和jar_home 的具体路径设置

4、再次启动Tomcat,执行startup.bat

九、等待更新

一种找到导致tomcat闪退的原因的方法:

1、windows+R----》输入cmd----》进入命令提示符窗口

2、输入路径----》进入到tomcat的bin目录

3、----》输入catalina.bat run 回车

4、----》查看具体错误信息

只要找到错误原因,就可以针对性的解决问题。

tomcat出错,每个人遇到的情况因软硬件问题都会有不同,这里只是总结出几大类常遇到的情况,希望能给你一点启发,慢慢来,修改前多做备份,会找到原因解决问题的,一起加油学习!

10

9

matplotlib 自带绘图样式效果展示速查(全)

8

手机屏幕坏了____怎么把里面的资料导出(18种方法)

7

2022年7月多家权威机构____编程语言排行榜__薪酬状况

6

Python中Print()函数的用法___详解(全,例多)

5

色彩颜色对照表系列(1~5)(16进制、RGB、CMYK、HSV、中英文名)

4

Tomcat端口配置(详细)

3

Tomcat 启动闪退问题解决集(八大类详细)

2

Apache Tomcat 各版本发行时间( v10.1.0-M17~v3.0)

1

Tomcat10安装(Windows环境)(详细)

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦


http://chatgpt.dhexx.cn/article/gIgGje6S.shtml

相关文章

Tomcat 启动闪退问题

1.花了一下午和一晚上都没解决Tomcat 启动闪退问题&#xff0c;首先是看下面这个博客&#xff0c;然后配置了很久环境变量没有成功 Tomcat 启动闪退问题解决集&#xff08;八大类详细&#xff09;http://t.csdn.cn/GUk0F 2.后面重下一个jdk11发现配置jdk和jre环境变量时&…

tomcat注册成服务后启动闪退的解决方案

1.查看jdk是否安装正确&#xff0c;是否配置环境变量&#xff08;不是一定要配置&#xff09; cmd进入tomcat的bin目录下&#xff0c;输入 tomcat&#xff08;7/8&#xff09;w.exe //ES//服务名 Service &#xff08;7/8根据tomcat版本来定&#xff09; 如果你配置了jdk环境变…

直接双击启动tomcat中的startup.bat闪退

免安装的tomcat双击startup.bat后&#xff0c;启动窗口一闪而过&#xff0c;而且tomcat服务未启动。 原因是&#xff1a;在启动tomcat是&#xff0c;需要读取环境变量和配置信息&#xff0c;缺少了这些信息&#xff0c;就不能登记环境变量&#xff0c;导致了tomcat的闪退。 …

vue权限控制路由(vue-router 动态添加路由)

用户登录后返回权限菜单&#xff0c;前端根据权限菜单动态添加路由&#xff0c;然后再动态生成菜单栏。 思路如下&#xff1a; 一、定义初始化默认路由。 二、动态配置路由&#xff0c;这里是把所有组件中相应的路由配置成一个个的对象&#xff0c;根据后台返回的菜单tree一个个…

基于VUE实现前端动态路由权限控制

需求 最近在项目中遇到权限控制的问题&#xff0c;由于自己接触前端也不久&#xff0c;对于路由这方面知识还有所欠缺&#xff0c;因此一直在网上找寻各种解决方案。最终还是看到花裤衩大佬的博客&#xff0c;终于对前端实现路由权限控制有了些许思路。 传送门&#xff1a;手摸…

【Vue路由(router)进一步详解】

Vue路由&#xff08;router&#xff09;进一步详解 query属性具体实例代码如下&#xff1a; params属性具体实例代码如下&#xff1a; props属性replace属性编程式路由导航路由缓存具体代码&#xff1a; 总结 本篇文章主要针对已经掌握Vue路由&#xff08;router&#xff09;基…

vue 实现动态路由

1、什么是动态路由&#xff1f; 2、动态路由的好处 3、动态路由如何实现 1、什么是动态路由&#xff1f; 动态路由&#xff0c;动态即不是写死的&#xff0c;是可变的。我们可以根据自己不同的需求加载不同的路由&#xff0c;做到不同的实现及页面的渲染。动态的路由存储可分…

16-Vue3 动态路由权限控制

Vite2Vue3TypeScriptElement-plus脚手架搭建系列 ✅01-初始化 Vite 项目 ✅02-配置 Vite2 环境变量 ✅03-Vite2 配置及说明 ✅04-Vue3 使用 SCSS ✅05-Vue3 路由配置 ✅06-TypeScript 配置及说明 ✅07-Vue3 使用 axios ✅08-Vue3 axios 对象封装 ✅09-ESLint 配置及说明 ✅10-…

【Vue路由守卫】

Vue路由守卫 Vue路由守卫全局路由守卫全局前置守卫全局后置守卫实例代码&#xff1a; 独享守卫组件内守卫总结 Vue路由守卫 路由守卫&#xff0c;简单理解来说就是&#xff0c;当用户要进行一些操作时&#xff0c;我需要用户的一些信息或数据或行为&#xff0c;我判断过后&…

vue 动态路由实现 后端控制权限时的前端处理

前端思路&#xff1a; 上图中 获取路由信息 &#xff0c;可以是后端控制的&#xff0c;可以是前端根据用户信息从路由表中筛选的。 此处只讲解后端存储路由信息的情况 组织路由信息 请求后台&#xff0c;获取返回结果&#xff0c;结果有两种可能&#xff0c;一种是组合好的…

vue-router路由权限控制的两种实现方案

前言 最近在抽时间写一套后台管理系统框架模板&#xff08;vueelement-ui&#xff09;&#xff0c;记录一些问题的解决方案。文章没什么顺序&#xff0c;就想到什么写什么了&#xff0c;也都是之前工作上碰到的问题。 抛出问题 Vue项目路由权限控制怎么实现&#xff1f; 实现…

Vue路由

目录 一、路由的概念 二、事前准备 三、 路由的相关知识点 3.1 路由的基本认识 3.2 路由小案例 3.3 路由模式的切换 3.4 指定路由的渲染位置 3.5 声明式导航 3.5.1 无参模式 3.5.2 传参模式 3.5.3 $route 与$router的区别 3.6 编程式导航 3.6.1 第一种get方…

Vue动态路由使用(后端控制)

使用VUE开发后台管理系统 完全由后端控制左边菜单项思路 在传统开发后台管理系统时&#xff0c;都会涉及权限控制这一功能需求 即&#xff1a;根据不同登录的角色账号来使用该账号拥有的功能&#xff0c;也就是说系统左边的菜单栏不是固定不变的&#xff0c;而是根据登录账号的…

Vue学习:路由

2. 路由 2.1 前端路由的发展历程 2.1.1 认识前端路由 路由其实是网络工程中的一个术语&#xff1a; 在架构一个网络时&#xff0c;非常重要的两个设备就是路由器和交换机。 ​ 当然&#xff0c;目前在我们生活中路由器也是越来越被大家所熟知&#xff0c;因为我们生活中都…

vue权限控制和动态路由

思路 登录&#xff1a;当用户填写完账号和密码后向服务端验证是否正确&#xff0c;验证通过之后&#xff0c;服务端会返回一个token&#xff0c;拿到token之后&#xff08;我会将这个token存贮到localStore中&#xff0c;保证刷新页面后能记住用户登录状态&#xff09;&#xf…

Vue 路由权限控制

当我们在做后台管理系统的时候&#xff0c;都会涉及到系统左侧的菜单树如何动态显示的问题。目前基本上都是RBAC的解决方案&#xff0c;即Role-Based Access Control&#xff0c;权限与角色相关联&#xff0c;用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了…

【Git CMD】Git常用命令总结

目录 0 git的工作区、暂存区、本地仓库和远程仓库0.1 图解0.2 解析 1 本地仓库1.1 创建版本库1.2 分支1.2.1 查看本地仓库的分支信息1.2.2 创建分支1.2.3 切换分支1.2.4 重命名分支1.2.5 合并分支1.2.6 删除分支 1.3 添加文件到暂存区1.3.1 添加单个文件1.3.2 添加多个文件1.3.…

Git常用命令大全(从入门到使用,学不会评论区骂我)

Git常用命令大全 1&#xff1a;Git全局设置 当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的&#xff0c;因为每次Git提交都会使用该用户信息。在Git 命令行中执行下面命令&#xff1a; 设置用户信息 git config --global user.name “你的用户名” …

Git常用命令及方法大全

下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace&#xff1a;工作区Index / Stage&#xff1a;暂存区Repository&#xff1a;仓库区&#xff08;或本地仓库&#xff09;Remote&#xff1a;远程仓库 本地分支关联远程&#xff1a;git branch --set-upstre…

Git 常用命令大全

一、 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git192.168.1.119:ndshowgit push origin …