Tomcat中的catalina.bat原理详细解析

发布时间 - 2026-01-11 03:03:04    点击率:

前言

本文主要给大家详细解析了关于Tomcat中catalina.bat原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

tomcat 的真正启动是在 catalina.bat 设置并启动的。startup.bat 只是找到catalina.bat 然后执行catalina.bat 来启动tomat的。下面我们来分析下catalina.bat

验证CATALINA_HOME 环境变量

  • 验证CATALINA_HOME 设置是否正确,如果不正确,重新设置CATALINA_HOME 环境变量。
  • 如果在CATALINA_HOME\bin目录下找不到catalina.bat,则结束(这里基本不会出现这种情况的,除非catalina.bat 没在tomcat的bin目录下)

设置环境变量

 

      1. 在 CATALINA_BASE 和 CATALINA_BASE 目录下查找 setenv.bat 文件并执行,找不到则不执行。

      2. 查找 setclasspath.bat 文件,并执行,找不到则结束

setclasspath.bat 设置java相关的环境变量。

tomcat 日志管理

把tomcat-juli.jar 添加到classPath环境变量中。
并把日志的配置文件路径添加到 LOGGING_CONFIG 环境变量

tomcat-juli.jar 作用

Apache Tomcat由一个自己的实现了java.util.logging多个关键元素的实现。这个实现被称为JULI。实现的核心组件是定制化的LogManager,可以获取运行在Tomcat中的不同web应用(以及不同的class loader)。他支持为应用配置单独的日志配置。当有web应用从内在中是被卸载时,会接到Tomcat的通知,以便他所引用的类可以被清除,避免内存泄露。

控制台信息输出

输出如下:

设置tomcat的启动类

设置 tomcat 远程调试相关参数

开启远程调试功能后,eclipse 中配置 Host 和 Port 然后Debug 就可以远程调试tomcat中的程序了。

其它启动模式

除了远程调试启动模式,还有如下几种启动模式

从这可以看出,启动tomcat、关闭tomcat都是调用的catalina.bat。

run和start 的区别是,是否在新窗口启动tomcat。

run是在本窗口中执行。

start是新开一个窗口执行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# tomcat  # catalina.bat  # tomcat的catalina.bat  # tomcat7  # Tomcat核心组件及应用架构详解  # SpringBoot内置tomcat启动原理详解  # 分析Tomcat的工作原理  # Tomcat解析XML和反射创建对象原理  # Tomcat中的startup.bat原理详细解析  # 基于Tomcat 数据源的原理、配置、使用介绍  # Tomcat 热部署的实现原理详解  # 解析Tomcat架构原理到架构设计  # 找不到  # 是在  # 目录下  # 自己的  # 都是  # 相关内容  # 多个  # 说了  # 不多  # 给大家  # 这种情况  # 几种  # 新开  # 被称为  # 这篇文章  # 谢谢大家  # 在中  # 这可  # 并把  # 不正确 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python正则表达式进阶教程_复杂匹配与分组替换解析  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何在Windows服务器上快速搭建网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何在香港免费服务器上快速搭建网站?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel怎么上传文件_Laravel图片上传及存储配置  如何快速配置高效服务器建站软件?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  如何在腾讯云免费申请建站?  Laravel如何自定义错误页面(404, 500)?(代码示例)  什么是javascript作用域_全局和局部作用域有什么区别?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  青岛网站建设如何选择本地服务器?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  昵图网官方站入口 昵图网素材图库官网入口  微信小程序 scroll-view组件实现列表页实例代码  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  ,南京靠谱的征婚网站?  如何在建站主机中优化服务器配置?  如何在建站宝盒中设置产品搜索功能?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何在IIS7上新建站点并设置安全权限?  Linux系统命令中tree命令详解  如何构建满足综合性能需求的优质建站方案?  微信小程序 canvas开发实例及注意事项  如何在Ubuntu系统下快速搭建WordPress个人网站?  高端网站建设与定制开发一站式解决方案 中企动力  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  JavaScript如何实现倒计时_时间函数如何精确控制  如何基于云服务器快速搭建网站及云盘系统?  韩国服务器如何优化跨境访问实现高效连接?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  百度浏览器如何管理插件 百度浏览器插件管理方法  昵图网官网入口 昵图网素材平台官方入口  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  javascript基本数据类型及类型检测常用方法小结  Linux系统命令中screen命令详解  如何快速查询域名建站关键信息?  Laravel怎么使用Intervention Image库处理图片上传和缩放  浅谈Javascript中的Label语句  如何在Tomcat中配置并部署网站项目?  zabbix利用python脚本发送报警邮件的方法  如何实现javascript表单验证_正则表达式有哪些实用技巧  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程