千家信息网

tomcat中如何寻找main函数

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,tomcat中如何寻找main函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。每一个做java web的同学,从入行第一天起就会听到t
千家信息网最后更新 2025年02月02日tomcat中如何寻找main函数

tomcat中如何寻找main函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

每一个做java web的同学,从入行第一天起就会听到tomcat的名字, 直到现在工作数年之后,依旧是天天离不开tomcat , 只不过是用的形式发生了变化,记得最开始用tomcat时,还要去server.xml里面改一个端口号,现在代码中基不上看不到tomcat的影子了,但不可否认,我们的web程序依旧是用tomcat运行起来的。

记得有一次面试时,面试官问:tomcat有main函数吗?当时我就想着,运行tomcat都是配置tomcat的目录,然后点个运行就不用管了,哪有平时写java程序那样,还有有个main函数,右键运行/调试之类的。如下图是在idea中配置tomcat.然后就答了一个没有main函数,然后,,就回家等通知了,,

启动tomcat

通过上面回家等通知我们可以推断出, tomcat是有main函数的,那main函数在哪里呢?我们从启动tomcat开始找(以下分析基于9.0.12)。启动时是找bin目录下的startup.bat/startup.sh,圈重点了!!下面这三个圈圈是重点

先点开startup.sh,感觉他好像并没有做什么事,只是执行了catalina.sh

那我们就顺着走进catalina.sh里面看看,这一看不得了,600多行脚本,从何看起,,当然,本文也不会从头一行一行的去讲这些,今天我们只是去寻找main函数,那我们在这里面就要去寻找java命令。

在这个脚本中,我们会看到大量的这样的脚本:

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
fi

if [ -z "$JSSE_OPTS" ] ; then
JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"

从if then关键字不难猜出,这是根据系统情况,来给tomcat的运行拼接不同的参数。我们跳过这些代码继续往下走,如下图所示,与startup.sh 最后的start 命令相对应,然后开始我们熟悉的java程序启动命令:nohup java -jar xxxxx.jar > log.log &.

在460行可以看到,启动的是org.apache.catalina.startup.Bootstrap类。不出意外的话这里面应该就有我们要找的Main函数,我们在idea中找到这个类,没错!Main函数就在这里面!!

看完上述内容,你们掌握tomcat中如何寻找main函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

函数 运行 命令 程序 脚本 一行 代码 内容 只是 方法 更多 目录 重点 问题 配置 不同 束手无策 不出意外 为此 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 文件服务器软件win7 数据库管理系统包括用户吗 山东网络安全应急响应 淄川化工软件开发服务 军备竞争恐怖主义网络安全 服务器加显卡需要配置吗 厦门在线项目管控软件开发平台 关系型数据库和分布式缓存服务 计算机网络技术能当兵吗 光网络技术仿真软件 网络安全涉及到的因素有哪些 个人公司个体户网页服务器费用 吉林省网络安全吗 服务器如何用电脑管理 软件开发 项目开发与规划 辽宁通讯软件开发服务推广 保定逐梦软件开发有限公司 周村客户管理软件开发公司 网络安全配备工具 新一代网络安全产业应该怎么做 海岛奇兵连接服务器怎么登录不了 2021探岳导航系统数据库 龙岗网络安全服务怎么样 rdf 数据库 软件开发属于stem 吗 东莞oa软件开发公司 追溯系统数据库设计 如何实施网络安全与隐私保护 组态王实时读取数据库 软件开发大学生毕业项目论文
0