刚上手部署本地Java项目的时候,纠结了好久怎么启动tomcat,一开始照搬打开普通软件的思路操作,接连踩了好几个新手都会碰到的坑,折腾很久才摸清靠谱的启动方式。
最开始的认知特别片面,日常打开浏览器、编辑器都是双击桌面图标就能直接运行,下意识觉得tomcat也遵循一样的逻辑。解压完tomcat压缩包之后,翻遍了根目录所有文件夹,一心找带图标的快捷启动程序,翻来翻去只有conf、bin、lib这类系统文件夹,没有任何可视化启动图标。越找越焦虑,害怕下载的安装包残缺,又重新去官网下载了两个不同版本的压缩包,解压之后结构完全一致,那一刻彻底懵了,完全不知道该从哪里下手开启服务。
后来听旁边同事随口提了一句bin文件夹。
点开bin文件夹之后,一眼就看到了后缀为bat的启动脚本,当时以为终于找对了入口,立马双击startup.bat文件。结果黑色的命令行弹窗一闪而过,没有任何启动提示,服务器也没有正常运行,连报错信息都来不及看清。当时心里瞬间发慌,第一反应是电脑的Java环境变量配置出错,反反复复修改JAVA_HOME的路径,重启电脑、重启资源管理器来回尝试,可每一次双击都是同样的闪退效果,问题半点没有解决。
其实直接双击脚本闪退,是新手最常踩的无意义误区,普通exe软件运行完毕不会自动关闭窗口,但tomcat的批处理脚本运行结束后会直接关闭命令行界面,所有启动日志和报错内容都会瞬间清空,压根没法排查问题根源。
折腾好久才搞明白,正确的启动方式根本不是直接双击文件。直接定位到tomcat的bin目录,在文件夹顶部的地址栏直接输入cmd,按下回车,就能在当前目录唤起命令行窗口,不需要手动切换磁盘路径,也不用额外配置其他参数,直接输入startup按下回车,tomcat就会完整加载所有服务,命令行窗口会一直常驻桌面,全部启动日志都会完整展示,端口占用、配置文件写错这类问题都能直接看到。
之前还跟风试过管理员身份运行启动脚本,也试过修改脚本里的编码格式,这些网上流传的零散办法全都没用,依旧会出现闪退问题。唯独在当前目录唤起cmd再命令启动,每一次都能稳定运行服务,想要关闭服务也不用强制关闭黑窗口,直接输入shutdown指令就能温和停止服务,不会出现进程残留占用端口的情况。
本身胆子小,碰到程序报错就下意识想重装软件,之前端口冲突的时候,直接删掉整个tomcat文件重新解压,白白浪费十几分钟。后来才发现,8080端口被占用只需要关掉后台占用端口的程序就行,完全没必要大动干戈重装整个服务。
那天晚上躺在床上,眼前一直闪过那个转瞬即逝的黑色命令弹窗,安安静静盯着天花板,没有再去想任何操作步骤,就任由脑子放空。