千家信息网

tomcat中如何寻找main函数

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,tomcat中如何寻找main函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。每一个做java web的同学,从入行第一天起就会听到t
千家信息网最后更新 2025年02月16日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安全错误 数据库的锁怎样保障安全 腾讯云服务器账号怎么查 网络安全技术与实训课件 用友t3数据库置疑 深圳匡威网络技术有限公司 芜湖软件开发培训哪家靠谱 计算机软件和数据库投资问题 中北大学网络安全专业宋老师 王者荣耀人脸识别服务器错误提示 3分钟看懂数据库事务 广东网络安全信息宣传 网络安全数据可视化综述 不过限定部分服务器 你对网络安全工作的认识 数据库监控接线图 网络安全普法知识进校园推文 网易基岩版有什么服务器 网络安全世态感知 软件开发seo优化关键字 加强数据库安全管控的通知 软件开发公司财务规划 设置代理服务器登录局域网 网络安全部和网络安全事业部 直播软件开发成本 东坡互联网科技的书在哪进货的 6年app软件开发月薪多少 长春市众达网络技术 我的世界流畅服务器 饥荒如何转让服务器 域名和服务器如何修改 mc服务器设置多个管理员
0