下载tomcat须选tar.gz或zip二进制包,避免exe安装版;解压后确保bin、conf、webapps目录完整;java_home和catalina_home需设为无中文无空格的绝对路径;端口冲突时优先修改server.xml中connector port;部署应用须用war包或标准目录结构,注意jdk 11+与jakarta.servlet兼容性。
下载Tomcat时认准 tar.gz 或 zip 二进制包,别下 exe 安装版
Windows 上双击 apache-tomcat-10.1.x-windows-x64.exe 看似省事,但会把路径硬编码进注册表和服务配置里,后续改端口、换 JDK、迁移项目都容易出 java.lang.ClassNotFoundException 或服务启动失败。直接去 官网下载页 找 Core 下的 zip(Windows)或 tar.gz(macOS/Linux)更可控。
解压后目录结构必须包含:bin(含 startup.bat/startup.sh)、conf(含 server.xml)、webapps。如果解压出来多了一层文件夹(比如 apache-tomcat-10.1.22/ 套着另一个同名文件夹),手动剪切内容到干净路径,避免 CATALINA_HOME 指向错误。
JAVA_HOME 和 CATALINA_HOME 必须设为绝对路径,且不能带中文或空格
Tomcat 启动脚本依赖这两个环境变量定位 JDK 和自身根目录。常见翻车点:
-
JAVA_HOME指向 JRE 而非 JDK(报错:’The JAVA_HOME environment variable is not defined correctly‘) -
CATALINA_HOME设成D:\Program Files\apache-tomcat-10.1.22—— 空格导致startup.bat解析失败,静默退出 - 在 Windows 上用 PowerShell 设置了变量,但用 CMD 运行
startup.bat—— 两个终端环境变量不互通
验证方式:CMD 中执行 echo %JAVA_HOME% 和 echo %CATALINA_HOME%,确认输出是类似 C:\jdk-17.0.2 和 D:\tomcat 的纯英文无空格路径;再执行 %CATALINA_HOME%\bin\version.bat,能看到 Java 版本和 Tomcat 版本即成功。
立即学习“Java免费学习笔记(深入)”;
修改 server.xml 前先备份,端口冲突时优先调 connector port 而非 shutdown port
默认 8080 端口常被其他程序(如 Skype、另一份 Tomcat)占用,启动时日志出现 ‘Address already in use‘ 就得改。打开 %CATALINA_HOME%\conf\server.xml,重点改这一行: