在 Windows Server 上部署和运行 Java 项目是常见需求,以下是详细的步骤指南,帮助你顺利完成部署。
✅ 一、准备工作
1. 确认系统环境
- 操作系统:Windows Server(如 2012 R2 / 2016 / 2019 / 2022)
- 权限:建议使用管理员账户操作
- 网络配置:确保防火墙开放所需端口(如 8080)
✅ 二、安装 Java 运行环境(JRE 或 JDK)
1. 下载 Java
推荐使用 OpenJDK 或 Oracle JDK
- OpenJDK 下载(免费):
- Adoptium (Eclipse Temurin)
- Amazon Corretto
- Microsoft Build of OpenJDK
推荐下载 LTS 版本(如 Java 8、11、17)
2. 安装 Java
- 双击
.msi安装包,按提示安装 - 记住安装路径,例如:
C:Program FilesEclipse Adoptiumjdk-17.0.3.7-hotspot
3. 配置环境变量
设置 JAVA_HOME
- 打开“系统属性” → “高级系统设置” → “环境变量”
- 在“系统变量”中新建:
变量名:JAVA_HOME 变量值:C:Program FilesEclipse Adoptiumjdk-17.0.3.7-hotspot - 编辑
Path变量,添加:%JAVA_HOME%bin
验证安装
打开命令提示符(CMD)运行:
java -version
javac -version # 如果安装了 JDK
应显示版本信息。
✅ 三、准备 Java 项目
情况 1:已有可执行 JAR 文件(最常见)
- 如:
myapp.jar - 通常是 Spring Boot 项目打包生成的 Fat JAR
情况 2:WAR 包 + 应用服务器(如 Tomcat)
- 需额外部署 Tomcat
✅ 四、部署方式选择
方式一:直接运行 JAR(推荐用于 Spring Boot)
1. 上传 JAR 文件
将 myapp.jar 放到服务器某个目录,例如:
D:javaappsmyapp.jar
2. 测试运行
打开 CMD,进入目录并运行:
cd /d D:javaapps
java -jar myapp.jar
如果看到启动日志(如 Tomcat started),说明成功。
3. 后台运行(关键!)
Windows 不像 Linux 有 nohup,可用以下方法:
方法 A:使用 start 命令后台运行
start /B java -jar myapp.jar > output.log 2>&1
/B表示在后台运行,日志输出到文件
方法 B:创建 Windows 服务(推荐长期运行)
使用工具将 JAR 包装为 Windows 服务:
推荐工具:NSSM (Non-Sucking Service Manager)
- 下载 nssm 并解压(如放到
C:nssm) - 运行
nssm install MyJavaApp - 配置:
- Path:
C:Program FilesEclipse Adoptiumjdk-17.0.3.7-hotspotbinjava.exe - Arguments:
-jar D:javaappsmyapp.jar - Directory:
D:javaapps
- Path:
- 点 Install
- 使用服务管理器启动服务
优势:开机自启、崩溃自动重启、便于管理
方式二:使用 Tomcat 部署 WAR 包
1. 下载并安装 Tomcat
- 下载地址:https://tomcat.apache.org
- 解压到目录,如:
D:apache-tomcat-9.0.xx
2. 部署 WAR 包
将 myapp.war 复制到:
D:apache-tomcat-9.0.xxwebapps
3. 启动 Tomcat
运行:
D:apache-tomcat-9.0.xxbinstartup.bat
4. 设置为服务(可选)
使用 service.bat 安装为 Windows 服务:
D:apache-tomcat-9.0.xxbinservice.bat install
然后在“服务”中管理。
✅ 五、配置防火墙(重要!)
确保客户端能访问你的应用端口(如 8080)
开放端口步骤:
- 打开“高级安全 Windows 防火墙”
- “入站规则” → “新建规则”
- 类型:端口 → TCP → 特定本地端口:
8080 - 允许连接
- 命名规则,如“Java App Port 8080”
✅ 六、监控与日志
- 日志输出:重定向到文件或使用 logback/log4j
- 建议使用:
java -jar myapp.jar > app.log 2>&1 - 查看日志:
type app.log或用记事本、Notepad++ 打开
✅ 七、常见问题排查
| 问题 | 解决方案 |
|---|---|
java is not recognized |
检查 JAVA_HOME 和 Path 环境变量 |
| 端口被占用 | netstat -ano | findstr :8080 找进程并 kill |
| 权限不足 | 以管理员身份运行 CMD |
| 内存不足 | 添加 JVM 参数:java -Xms512m -Xmx2g -jar myapp.jar |
✅ 八、自动化脚本示例(run.bat)
@echo off
cd /d D:javaapps
echo Starting Java Application...
java -Xms512m -Xmx2g -jar myapp.jar > output.log 2>&1
pause
保存为 run.bat,双击运行(或后台运行)
✅ 总结
| 步骤 | 内容 |
|---|---|
| 1 | 安装 Java(JDK/JRE) |
| 2 | 设置 JAVA_HOME 和 Path |
| 3 | 上传 JAR/WAR 文件 |
| 4 | 运行应用(前台/后台/服务) |
| 5 | 配置防火墙开放端口 |
| 6 | 日志监控与维护 |
如果你提供具体项目类型(如 Spring Boot、普通 Java Web、是否用数据库等),我可以给出更定制化的部署建议。
ECLOUD博客