加油
努力

怎样将Java程序打包部署到Windows Server的Tomcat服务器上?

将Java程序打包并部署到 Windows Server 上的 Tomcat 服务器 是一个常见的 Web 应用部署流程。以下是详细步骤:


✅ 前提条件

  1. Java 程序是基于 Servlet/JSP 的 Web 应用(如使用 Spring MVC、Spring Boot 等)
  2. 已安装并配置好 JDK(建议 JDK 8 或以上)
  3. 已下载并安装 Apache Tomcat(建议版本 8.5 / 9 / 10)
  4. Windows Server 上有管理员权限
  5. Java 程序使用 Maven 或 Gradle 构建(推荐)

🔧 步骤一:将 Java 程序打包成 WAR 文件

如果使用 Maven

在项目根目录下执行命令:

mvn clean package

打包完成后,会在 target/ 目录生成一个 .war 文件,例如:

myapp.war

⚠️ 注意:确保 pom.xml<packaging> 设置为 war

<packaging>war</packaging>

如果使用 Gradle

执行命令:

gradle clean build

生成的 WAR 文件位于 build/libs/ 目录下。


📦 步骤二:将 WAR 文件复制到 Tomcat 的 webapps 目录

  1. 登录你的 Windows Server
  2. 找到 Tomcat 安装目录,通常路径类似:
    C:apache-tomcat-9.0.xxwebapps
  3. 将生成的 myapp.war 文件复制到该目录下。

✅ Tomcat 会自动解压 WAR 文件并创建同名文件夹(如 myapp/


🔁 步骤三:启动或重启 Tomcat 服务

方法一:使用 startup.bat 启动

进入 Tomcat 的 bin 目录:

cd C:apache-tomcat-9.0.xxbin
startup.bat

这将在控制台运行 Tomcat,便于查看日志。

方法二:以 Windows 服务方式运行(推荐生产环境)

如果你已将 Tomcat 安装为 Windows 服务:

  1. 打开“服务”管理器(services.msc
  2. 找到服务名为 Tomcat9(具体名称可能不同)
  3. 右键选择“重新启动”

💡 首次安装后可运行 service.bat install 将 Tomcat 注册为服务(需管理员权限)


🌐 步骤四:访问应用

等待 Tomcat 启动完成(查看日志确认无错),然后在浏览器中访问:

http://<服务器IP>:8080/myapp
  • 8080 是 Tomcat 默认端口(可在 conf/server.xml 修改)
  • myapp 是 WAR 文件名(不含 .war 后缀)

🛠️ 常见问题排查

问题 解决方法
访问显示 404 检查 WAR 是否成功解压,检查应用上下文路径
启动报错 ClassNotFoundException 检查 WEB-INF/lib 是否包含所有依赖 JAR
数据库连接失败 检查 application.propertiescontext.xml 中数据库配置
中文乱码 在 Tomcat 的 server.xml 中设置 URIEncoding=”UTF-8″
内存溢出 修改 bin/catalina.bat,添加 JVM 参数,如 -Xms512m -Xmx1024m

✅ 附加建议(生产环境)

  1. 修改默认端口和关闭 SHUTDOWN 端口

    • 编辑 conf/server.xml,修改 <Server port="8005"> 为 -1(禁用关闭端口)
    • 修改 HTTP 端口从 8080 到 80(需管理员权限)
  2. 配置 context.xml 防止资源泄漏

    • conf/context.xml 中启用防泄漏功能
  3. 使用反向X_X(如 Nginx/IIS)

    • 将 80/443 端口请求转发给 Tomcat,提升安全性和性能
  4. 设置应用上下文为 ROOT

    • 若希望访问 http://ip/ 直接进入应用:
      • 删除 webapps/ROOT 目录
      • 将你的 WAR 改名为 ROOT.war 并放入 webapps

📝 示例:Spring Boot 项目打包为 WAR

  1. 修改 pom.xml
<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
  1. 主类继承 SpringBootServletInitializer
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MyApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

✅ 完成!现在你的 Java Web 应用已在 Windows Server 的 Tomcat 上成功部署。

如有更多细节(如使用 HTTPS、集群部署等),欢迎继续提问!

云服务器