在 Windows Server 上部署 Java 程序是一个常见需求,尤其适用于运行 Java Web 应用(如 Spring Boot、Tomcat 部署的 WAR 包等)或后台服务。以下是详细的部署步骤和建议:
一、准备工作
1. 安装 Java 运行环境(JRE 或 JDK)
方法一:下载并安装 JDK
- 访问 Oracle JDK 或 OpenJDK(推荐使用 Adoptium 的 Temurin JDK)。
- 下载适用于 Windows 的 JDK(如
jdk-17_x64.exe)。 - 安装 JDK,建议安装路径为:
C:Program FilesJavajdk-17
方法二:使用压缩包(绿色版)
- 下载 JDK 的 ZIP 包(如
OpenJDK17U-jdk_x64_windows_hotspot_17.0.8_7.zip)。 - 解压到指定目录,例如:
C:javajdk-17
2. 配置环境变量
右键“此电脑” → “属性” → “高级系统设置” → “环境变量”
添加系统变量:
-
变量名:
JAVA_HOME
变量值:C:Program FilesJavajdk-17(根据实际路径) -
变量名:
CLASSPATH
变量值:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar
修改 Path 变量,添加:
%JAVA_HOME%bin
3. 验证安装
打开命令提示符(CMD)或 PowerShell,运行:
java -version
javac -version
应显示版本信息,说明配置成功。
二、部署 Java 程序
情况一:部署 JAR 包(如 Spring Boot 应用)
1. 上传 JAR 文件
将你的 Java 程序(如 myapp.jar)上传到服务器,例如:
C:appmyapp.jar
2. 测试运行
在 CMD 中执行:
java -jar myapp.jar
如果正常启动,说明可以运行。
3. 后台运行(推荐使用工具)
方式1:使用 PowerShell 后台运行
Start-Process java -ArgumentList "-jar", "myapp.jar" -WindowStyle Hidden
方式2:使用 nohup 类似工具(Windows 不支持 nohup)
可使用 .bat 脚本后台运行:
@echo off
start "MyApp" /B java -jar myapp.jar > app.log 2>&1
方式3:注册为 Windows 服务(推荐生产环境)
使用 NSSM (Non-Sucking Service Manager) 将 Java 程序注册为服务:
- 下载 NSSM:https://nssm.cc/download
- 解压后运行
nssm install MyApp - 配置:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar "C:appmyapp.jar" - Startup directory:
C:app
- Path:
- 点击 Install Service
- 使用服务管理器启动服务
优点:开机自启、崩溃自动重启、日志管理等。
情况二:部署 WAR 包(使用 Tomcat)
1. 下载并安装 Tomcat
- 下载 Apache Tomcat(如 Tomcat 9 或 10):https://tomcat.apache.org/
- 解压到目录,如:
C:tomcatapache-tomcat-9.0.xx
2. 配置环境变量(可选)
CATALINA_HOME = C:tomcatapache-tomcat-9.0.xx
3. 部署 WAR 包
将你的 myapp.war 放入:
C:tomcatapache-tomcat-9.0.xxwebapps
4. 启动 Tomcat
运行:
C:tomcatapache-tomcat-9.0.xxbinstartup.bat
5. 注册为服务(生产推荐)
使用 service.bat 安装为 Windows 服务:
C:tomcatapache-tomcat-9.0.xxbinservice.bat install MyTomcat
然后在“服务”中管理启动/停止。
三、防火墙与端口配置
确保服务器防火墙允许访问 Java 程序的端口(如 8080):
- 打开“高级安全 Windows 防火墙”
- 添加入站规则 → 端口 → TCP → 8080
- 允许连接
四、日志与监控
- 日志输出建议重定向到文件:
java -jar myapp.jar > app.log 2>&1 - 使用事件查看器或日志轮转工具(如 Logrotate 风格工具)管理日志。
- 可结合 PowerShell 脚本或任务计划定期检查进程状态。
五、安全建议
- 使用非管理员账户运行 Java 程序。
- 定期更新 JDK 和应用依赖。
- 避免暴露管理端口(如 Spring Boot Actuator)到公网。
- 配置 HTTPS(可通过 IIS 反向X_X + SSL 卸载)。
六、可选:使用 IIS 反向X_X(推荐)
若希望使用 80/443 端口,可使用 IIS + ARR(Application Request Routing)反向X_X:
- 安装 IIS 和 ARR 模块。
- 配置 URL Rewrite 规则,将请求X_X到
http://localhost:8080。 - 绑定域名和 SSL 证书。
总结
| 步骤 | 内容 |
|---|---|
| 1 | 安装 JDK 并配置环境变量 |
| 2 | 上传 JAR 或 WAR 文件 |
| 3 | 测试运行程序 |
| 4 | 使用 NSSM 或 Tomcat 注册为服务 |
| 5 | 配置防火墙和端口 |
| 6 | (可选)使用 IIS 反向X_X |
如果你提供具体的 Java 程序类型(如 Spring Boot、普通 JAR、WAR、还是 JavaFX 后台服务),我可以给出更精准的部署脚本或配置建议。
CDNK博客