Java项目Tomcat部署运维指南

部署前必须准备的两样东西

在动手操作之前,请确认你的服务器已经安装好 Java 运行环境(JDK)Tomcat 服务器
这两个组件是运行 Java Web 项目的基础。

  • JDK 要求:Tomcat 9 及以上版本需要 JDK 8 或更高版本。你可以通过命令 java -version 检查是否安装及版本号。如果没有,从 Oracle 官网或 OpenJDK 源下载并设置 JAVA_HOME 环境变量。
  • Tomcat 下载:访问 Tomcat 官网 下载核心二进制包(如 apache-tomcat-9.0.xx.tar.gz)。上传到服务器后解压到 /usr/local/tomcat 或你喜欢的目录。
小提示:如果使用宝塔面板,可以在软件商店直接安装 Tomcat,系统会自动配置 JDK 依赖,省去手动设置环境变量的步骤。

上手操作:部署你的第一个 Java Web 项目

假设你已经有一个 .war 格式的 Java 项目文件。
以下是标准部署流程:

  1. 停止 Tomcat 服务(如果正在运行)
   cd /usr/local/tomcat/bin
   ./shutdown.sh

可以通过 ps aux | grep tomcat 确认进程已终止。

  1. 清除旧项目缓存(可选但推荐)

删除 webapps 目录下同名的旧文件夹和 work 目录下的缓存,避免冲突。

   rm -rf /usr/local/tomcat/webapps/旧项目名
   rm -rf /usr/local/tomcat/work/Catalina
  1. 上传并放置 war 包

将新的 项目名.war 文件上传到 Tomcat 的 webapps 目录。Tomcat 启动后会自动解压部署。
如果你使用宝塔面板,可以直接在 Tomcat 管理界面选择“添加项目”,上传 war 包。

  1. 启动 Tomcat 服务
   ./startup.sh

观察启动日志(在 logs/catalina.out 中),查看是否有错误信息。

  1. 访问项目

浏览器输入 http://服务器IP:8080/项目名/ 即可看到页面。
如果端口被修改,请替换为实际端口。

避坑指南:新手最容易踩的四个坑

端口被占用导致启动失败

Tomcat 默认使用 8080 端口。
如果启动后无法访问,先检查端口占用:

netstat -tlnp | grep 8080

内存溢出(OutOfMemoryError)

Java 项目如果耗内存大,默认启动参数可能不够。
编辑 Tomcat 的 bin/catalina.sh(Windows 下是 catalina.bat),在顶部添加:

JAVA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"

然后重启 Tomcat。
如果使用宝塔面板,可以在 Tomcat 设置中的“JVM 参数”处修改。

权限不足导致无法写入文件

项目如果需要在服务器上写入文件(如上传附件),需要确保 Tomcat 运行用户对目标目录有写权限。
通常 Tomcat 以普通用户运行,可修改目录所有者:

chown -R tomcat:tomcat /path/to/upload

或者将目录权限设为 777(不推荐生产环境)。

404 错误或页面无法加载

先确认项目是否已成功解压:查看 webapps 目录下是否有同名的文件夹。
如果 war 包未自动解压,可能是 webapps 目录权限问题或磁盘空间不足。
检查 logs/catalina.out 日志,常见错误有 Unable to create the directoryNo space left on device

效果验证:三步确认部署是否成功

  1. 检查 Tomcat 进程是否存在
   ps -ef | grep tomcat | grep -v grep

如果有输出,说明 Tomcat 正在运行。

  1. 查看应用日志

进入 logs 目录,关注 catalina.outlocalhost.日期.log
搜索 ErrorException 关键词,正常启动最后应有类似 Server startup in xxx ms 的信息。

  1. 通过浏览器验证接口或页面

访问项目首页或一个预期返回 JSON 的接口,确认返回正确。
如果页面报 500,查看日志定位具体问题。

高频问题解答(Q&A)

Q:war 包没有自动解压怎么办?
A:检查 Tomcat 的 conf/server.xmlHostautoDeploy 属性是否为 true(默认是)。另外,确保 war 包权限正常(chmod 644 项目名.war),然后重新启动 Tomcat。

Q:如何修改 Tomcat 的默认端口?
A:编辑 conf/server.xml,找到 ,将 8080 改为你想要的端口,注意不要与已有服务冲突。

Q:部署多个项目可以共用一个 Tomcat 吗?
A:可以。只需将多个 war 包放入 webapps 目录,Tomcat 会自动为每个 war 创建独立上下文路径(即项目名)。注意确保每个项目的路径不重复。

Q:如何实现开机自启动 Tomcat?
A:在 /etc/systemd/system/ 下创建 tomcat.service 文件,内容参考官方文档。或者直接在 /etc/rc.d/rc.local 中添加启动命令(/usr/local/tomcat/bin/startup.sh),记得给 rc.local 加执行权限。

如果你正在处理 Java 项目 Tomcat 部署运维,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
PHP网站运行环境配置优化:从零开始的保姆级教程
下一篇
Python项目后台服务托管设置:从零配置自启动守护进程
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意