在 Windows Server 上部署 Java 项目是常见需求,尤其是在企业环境中。以下是详细的部署步骤和注意事项,帮助你顺利完成部署。
一、准备工作
-
确认服务器环境
- 操作系统:Windows Server 2012 / 2016 / 2019 / 2022
- 权限:建议使用管理员账户操作
- 网络:确保服务器可访问X_X(用于下载软件)或已准备好离线安装包
-
准备 Java 项目
- 通常为打包好的
.jar或.war文件 - 如果是 Spring Boot 项目,一般是一个可执行的
xxx.jar
- 通常为打包好的
二、安装 Java 运行环境(JRE/JDK)
-
下载 JDK
- 推荐使用 Oracle JDK 或 OpenJDK
- 下载地址:
- Oracle JDK: https://www.oracle.com/java/technologies/downloads/
- OpenJDK(如 Adoptium): https://adoptium.net/
-
安装 JDK
- 运行安装包(如
jdk-17_windows-x64_bin.exe) - 记住安装路径,例如:
C:Program FilesJavajdk-17
- 运行安装包(如
-
配置环境变量
- 打开「系统属性」→「高级」→「环境变量」
- 添加系统变量:
JAVA_HOME:C:Program FilesJavajdk-17PATH中添加:%JAVA_HOME%bin
- 验证安装:
java -version javac -version
三、部署 Java 项目
方式一:直接运行 JAR 包(推荐,如 Spring Boot)
-
将你的
app.jar上传到服务器(如D:java-appsmyapp.jar) -
在命令行运行:
java -jar D:java-appsmyapp.jar -
后台运行(避免关闭窗口中断服务)
使用nohup不适用 Windows,改用以下方式:- 创建
.bat脚本(如start.bat):@echo off cd /d D:java-apps start "My Java App" java -jar myapp.jar exit - 或使用
javaw隐藏窗口:start javaw -jar myapp.jar
- 创建
-
更稳定的方式:使用 Windows 服务
- 推荐工具:NSSM (Non-Sucking Service Manager)
- 下载地址:https://nssm.cc/download
- 安装步骤:
- 解压 nssm,运行
nssm install MyJavaApp - 设置:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar D:java-appsmyapp.jar - Startup directory:
D:java-apps
- Path:
- 点击 Install service
- 解压 nssm,运行
- 启动服务:
net start MyJavaApp
- 推荐工具:NSSM (Non-Sucking Service Manager)
方式二:部署 WAR 包到 Tomcat
-
下载并安装 Tomcat
- 下载地址:https://tomcat.apache.org/
- 解压到
D:apache-tomcat-9.0.xx
-
配置环境变量(可选)
CATALINA_HOME:D:apache-tomcat-9.0.xx
-
部署 WAR 包
- 将
myapp.war复制到D:apache-tomcat-9.0.xxwebapps - 启动 Tomcat:
D:apache-tomcat-9.0.xxbinstartup.bat
- 将
-
设置为 Windows 服务(可选)
- 使用
service.bat install将 Tomcat 安装为服务
- 使用
四、配置防火墙和端口
-
开放端口(如 8080)
- 打开「高级安全 Windows 防火墙」
- 添加入站规则 → 端口 → TCP → 8080 → 允许连接
-
测试访问
- 浏览器访问:
http://<服务器IP>:8080
- 浏览器访问:
五、日志与监控
-
查看日志
- JAR 运行日志:可重定向输出
java -jar app.jar > log.txt 2>&1 - Tomcat 日志:
logs/catalina.out
- JAR 运行日志:可重定向输出
-
使用日志轮转工具(如 Logrotate for Windows)或脚本定期清理
六、安全建议
- 不要使用默认端口(如 8080),可修改为其他端口
- 配置 HTTPS(使用证书)
- 定期更新 JDK 和应用
- 限制远程访问 IP(通过防火墙)
七、自动化部署(可选)
- 使用 Jenkins、GitLab CI/CD 自动打包并部署到服务器
- 结合 PowerShell 脚本实现自动停止、更新、启动
示例:Spring Boot 项目部署脚本(start.bat)
@echo off
cd /d D:myapp
echo Starting Java application...
java -jar myapp.jar --spring.profiles.active=prod > app.log 2>&1
pause
总结
| 步骤 | 内容 |
|---|---|
| 1 | 安装 JDK 并配置环境变量 |
| 2 | 上传 JAR/WAR 文件 |
| 3 | 运行应用(命令行或服务) |
| 4 | 配置防火墙开放端口 |
| 5 | 设置开机自启(建议用 NSSM) |
如果你提供具体的项目类型(如 Spring Boot、普通 Java Web、WAR/JAR),我可以给出更精确的部署方案。
云服务器