在 Windows Server 上部署 Java 应用(如 Spring Boot、Java Web 应用等)是一个常见的需求。以下是详细的部署步骤和建议,适用于大多数 Java 应用。
一、部署前准备
1. 安装 Java 运行环境(JRE 或 JDK)
Java 应用需要 Java 环境支持。
步骤:
-
下载 JDK(推荐使用 Oracle JDK 或 OpenJDK):
- Oracle JDK: https://www.oracle.com/java/technologies/downloads/
- OpenJDK(如 Adoptium/Eclipse Temurin): https://adoptium.net/
-
安装 JDK:
- 双击安装包,按提示安装,例如安装到
C:Program FilesJavajdk-17
- 双击安装包,按提示安装,例如安装到
-
配置环境变量:
- 打开「系统属性」→「高级系统设置」→「环境变量」
-
添加或修改以下变量:
JAVA_HOME = C:Program FilesJavajdk-17 PATH = %JAVA_HOME%bin
-
验证安装:
打开命令提示符(CMD)运行:java -version javac -version如果显示版本信息,说明配置成功。
2. 准备你的 Java 应用
-
如果是 Spring Boot 项目,打包成一个可执行的 JAR 文件:
mvn clean package生成的文件如:
myapp.jar -
如果是传统 Web 应用(WAR 包),需要配合 Tomcat 等服务器部署。
二、部署方式一:直接运行 JAR(推荐 Spring Boot)
1. 上传 JAR 文件
将打包好的 .jar 文件上传到 Windows Server,例如放到:
D:appsmyapp.jar
2. 测试运行
在 CMD 中运行:
java -jar D:appsmyapp.jar
如果应用正常启动,说明可以运行。
3. 后台运行(使用 nohup 或工具)
Windows 没有 nohup,但有以下方式实现后台运行:
方法 1:使用 start /B(简单后台运行)
start /B java -jar D:appsmyapp.jar > D:logsapp.log 2>&1
注意:
>重定向输出日志,2>&1表示标准错误也输出到日志。
方法 2:使用 PowerShell 后台运行
Start-Process java -ArgumentList "-jar", "D:appsmyapp.jar" -RedirectStandardOutput "D:logsapp.log" -RedirectStandardError "D:logserror.log" -NoNewWindow
方法 3:使用 NSSM(推荐,可注册为 Windows 服务)
安装 NSSM(Non-Sucking Service Manager)
- 下载 NSSM:https://nssm.cc/download
- 解压,例如放到
C:nssm
使用 NSSM 注册为服务
-
打开命令提示符(管理员权限):
C:nssmwin64nssm.exe install MyJavaApp -
在弹出窗口中配置:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar D:appsmyapp.jar - Startup directory:
D:apps - 日志选项:设置日志路径
- Path:
-
点击 "Install service"
-
启动服务:
net start MyJavaApp -
可在「服务」管理器中管理该服务(开机自启、自动重启等)
三、部署方式二:使用 Tomcat 部署 WAR 包(传统 Web 应用)
1. 下载并安装 Tomcat
- 下载地址:https://tomcat.apache.org/
- 解压到
D:tomcat
2. 配置环境变量(可选)
CATALINA_HOME = D:tomcat
3. 部署 WAR 包
将你的 myapp.war 放入:
D:tomcatwebapps
4. 启动 Tomcat
运行:
D:tomcatbinstartup.bat
访问:http://服务器IP:8080/myapp
5. 注册为 Windows 服务(可选)
使用 Tomcat 自带的 service.bat 注册为服务:
D:tomcatbinservice.bat install
然后在「服务」中启动 Tomcat 服务。
四、其他建议
1. 防火墙配置
确保开放应用端口(如 8080、80、443 等):
- 打开「Windows Defender 防火墙」→「高级设置」→「入站规则」→「新建规则」
- 添加端口规则(TCP,指定端口)
2. 域名与反向X_X(可选)
- 使用 IIS 或 Nginx 做反向X_X,将 80/443 转发到 Java 应用端口。
- 例如:用户访问
http://yourdomain.com→ IIS/Nginx → 转发到localhost:8080
3. 日志监控
- 定期查看日志文件(如
app.log) - 使用工具如 Logrotate(Windows 版本)或脚本定期归档日志
4. 安全建议
- 不要使用默认端口暴露管理后台
- 配置 HTTPS(使用 Let’s Encrypt 证书)
- 限制远程访问 IP
总结
| 部署方式 | 适用场景 | 推荐度 |
|---|---|---|
| 直接运行 JAR | Spring Boot 等独立应用 | ⭐⭐⭐⭐⭐ |
| NSSM 注册服务 | 需要开机自启、稳定运行 | ⭐⭐⭐⭐⭐ |
| Tomcat 部署 WAR | 传统 Java Web 项目 | ⭐⭐⭐⭐ |
| IIS/Nginx X_X | 需要域名、HTTPS、负载均衡 | ⭐⭐⭐⭐ |
如有具体项目类型(如 Spring Boot、普通 Java、Web 项目等),可提供更详细配置。欢迎继续提问!
云服务器