Tomcat启动闪退的原因和解决方法

article/2025/9/18 1:46:06

作者:来个地瓜
来源:CSDN
原文:https://blog.csdn.net/qq904069486/article/details/80909780
版权声明:本文为博主原创文章,转载请附上博文链接!

Tomcat启动一闪而过怎么办?这成为了许多刚接触tomcat开发环境工作者的一个大问题,许多用户朋友都不知道是因为什么问题导致出现这种情况,下面就一起来了解一下吧。

原因一:

(1)首先要搞明白启动不起来的原因。方法是在命令行下,运行startup.bat文件,这样程序就不会一闪而过,而会将启动不起来的原因打印到窗口上。

(2)在命令行下启动tomcat的方法读者应该都很清楚,大体就是:cmd启动命令行窗口→通过cd命令到tomcat的bin目录下→运行startup.bat。


(3)通过命令行的提示看到,这是因为电脑上没有配置JAVA_HOME或者JRE_HOME导致的。那么下面添加上JAVA_HOME和JRE_HOME。具体步骤为计算机→属性→环境变量,然后添加系统变量;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)添加完JAVA_HOME和JRE_HOME两个系统变量之后,在将这两个变量放到path系统变量中,方法是,在path变量值的后面直接追加 【;%JAVA_HOME%;%JRE_HOME%】注意!分号是环境变量的分割符号,不可少。

在这里插入图片描述
在这里插入图片描述
Windows10的界面不同, 含义相同
原因二:

双击tomcat的bin目录下的startup.bat时一闪而过时,可以右键startup.bat找一个文本编辑器打开,然后在文本的最后敲上pause,保存后重新运行startup.bat,这时候窗口会留在桌面上(调试成功,把pause去掉即可)。我们可以看到DOS窗口里有错误信息。

  1. The JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program 原因:以前版本的tomcat需要JDK,现在的tomcat(本人的是7.0)只要有JRE就可以。 如果你装的tomcat的是解压版的(免安装的)那么则需要自己手动配置JRE_HOME 这个环境变量,否则,就会出现上面的错误。 解决办法:右击 我的电脑 - 高级 - 环境变量, 在系统变量中 新建 变量名:JRE_HOME 变量值:C:\Program Files\Java\jre7(根据你自己的JDK安装目录寻找JRE)

2.Neither the JAVA_HOME nor the JRE_HOME environment variable is defined Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat,只要在setclasspath.bat的开头声明环境变量(红色两行)就可以了,原因是后来较新版本安装完不会自动登记环境变量JAVA_HOME,JRE_HOME。
给setclasspath.bat的开头添加红色标记部分,如下: rem ___________________________ rem Set CLASSPATH and Java options rem rem rem ____________________________ set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20 set JRE_HOME=C:\Program Files\Java\jre6 rem Make sure prerequisite environment variables are set if not “%JAVA_HOME%” == “” goto gotJdkHome if not “%JRE_HOME%” == “” goto gotJreHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined echo At least one of these environment variable is needed to run this program goto exit
这样在每次运行startup.bat时就自动注册了JAVA_HOME,JRE_HOME。 运行startup.bat,提示“信息:Server startup in xxxxx ms” OK 大功告成。

  1. Cannot find “”d:\apache-tomcat-6.0.32”\bin\setclasspath.bat”

这个时候,可能是CATALINA_HOME的值在某个地方被写死了,像我的绿色版tomcat在bin文件下多了一个setenv.bat的文件,打开一看果然是在这里面被写死了CATALINA_HOME的路径,这应该是为了某种原因被人后加上的设置文件,把这个文件删除之后,tomcat可以正常运行了。

在这里插入图片描述
在这里插入图片描述
原因三:

如果你的环境配置没有错,也没有上述两种错误那么可能你已经启动了一个Tomcat,这样两个Tomcat会产生冲突。你可以在com中查看8080是否被占用:

(1)我们可以使用如下命令来找出哪个进程占用5037这个端口

    netstat -ano | findstr "5037"

在这里插入图片描述
(2)最后一列为占用5037端口的进程号,PID为9060,那么我们可以在任务管理器里查看改进程号所对应的进程,直接右击结束该进程即可。或者使用上面提到的taskkill命令,它主要是用来批量删除某些进程,当然,也可以用来删除一个进程,使用方法如下:

taskkill /PID 9060 /F 其中,/F主要是用来强制删除。

你也可以查看Tomcat自带的打印日志在你的Tomcat的logs文件夹下如果出现了

七月 04, 2018 10:40:20 上午 org.apache.catalina.core.StandardService initInternal

严重: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]

类似的错误可能已经运行了一个Tomcat你可以在服务中把它终止掉,然后再运行自己的Tomcat就可以了。


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

相关文章

Tomcat配置出错:Using CATALINA_OPTS: ““Tomcat启动闪退问题解决

文章目录 前言 一、问题描述二、定位问题1.CMD命令启动2.解决方法 前言 本篇问题所处环境 Tomcat 9Java11Win 10 一、问题描述 在安装配置Tomcat过程中,通过startup.bat脚本命令启动Tomcat发现Tomcat终端窗口一闪而过,发生闪退:Tomcat没有…

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

Tomcat启动闪退问题解决集(八大类详细) 目录 一、Java环境不对,Tomcat 不同版本需要的Java环境不同。 二、环境变量没有配置好 ?三、Tomcat端口被占用 四、配置文件编码问题 五、启动时需要的配置文件编写出错 六、部分相关文件丢失 …

Tomcat 启动闪退问题

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

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

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

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

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

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

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

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

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

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

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

vue 实现动态路由

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

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路由守卫全局路由守卫全局前置守卫全局后置守卫实例代码: 独享守卫组件内守卫总结 Vue路由守卫 路由守卫,简单理解来说就是,当用户要进行一些操作时,我需要用户的一些信息或数据或行为,我判断过后&…

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

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

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

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

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

Vue学习:路由

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

vue权限控制和动态路由

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

Vue 路由权限控制

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

【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:Git全局设置 当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。在Git 命令行中执行下面命令: 设置用户信息 git config --global user.name “你的用户名” …