在 Windows Server 上部署 Java 项目是一个常见需求,尤其适用于企业级应用。以下是详细的步骤和建议,帮助你在 Windows Server 上成功部署 Java 项目(如 Spring Boot、Java Web 应用等)。
一、环境准备
1. 安装 Java 运行环境(JRE 或 JDK)
-
下载 JDK:
- 推荐使用 Oracle JDK 或 OpenJDK(如 Adoptium/Eclipse Temurin、Amazon Corretto、Azul Zulu 等)。
- 下载地址示例:https://adoptium.net/
-
安装 JDK:
- 运行安装包(如
jdk-17_x64.exe),选择安装路径(例如:C:Program FilesJavajdk-17)。
- 运行安装包(如
-
配置环境变量:
- 打开「系统属性」→「高级系统设置」→「环境变量」
- 添加或修改以下变量:
JAVA_HOME = C:Program FilesJavajdk-17 Path = %JAVA_HOME%bin -
验证安装:
java -version javac -version如果显示版本信息,则安装成功。
2. 安装 Maven(可选,用于构建项目)
如果你的项目是基于 Maven 的源码,需要 Maven 构建。
- 下载 Apache Maven:https://maven.apache.org/download.cgi
- 解压到目录(如
C:apache-maven-3.9.6) -
配置环境变量:
MAVEN_HOME = C:apache-maven-3.9.6 Path = %MAVEN_HOME%bin
验证:
mvn -v
二、获取并构建 Java 项目
方式 1:已有 JAR 包(推荐用于生产)
如果你已经有打包好的 .jar 文件(如 Spring Boot 项目):
- 将
your-app.jar上传到服务器某个目录,例如:C:deploymyapp
方式 2:从源码构建
如果只有源码(如 Git 仓库):
git clone https://your-repo.git
cd your-project
mvn clean package
生成的 JAR 文件通常在 target/ 目录下。
三、运行 Java 项目
1. 直接运行 JAR(适用于 Spring Boot)
java -jar your-app.jar
例如:
java -jar myapp-0.0.1-SNAPSHOT.jar
2. 后台运行(避免关闭窗口时停止)
使用 nohup 不适用 Windows,改用如下方式:
方法一:使用 start /B 命令(CMD)
start /B java -jar myapp.jar > log.txt 2>&1
方法二:使用 PowerShell 后台运行
Start-Process java -ArgumentList "-jar","myapp.jar" -RedirectStandardOutput "output.log" -RedirectStandardError "error.log" -NoNewWindow
方法三:使用 NSSM 将 Java 程序注册为 Windows 服务(推荐)
推荐用于生产环境,实现开机自启、崩溃自动重启。
- 下载 NSSM:https://nssm.cc/download
- 解压后运行
nssm install MyJavaApp - 配置:
- Application tab:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar "C:deploymyappmyapp.jar" - Startup directory:
C:deploymyapp
- Path:
- Application tab:
- 点击 Install service
- 启动服务:
net start MyJavaApp
四、配置端口与防火墙
1. 确保应用端口开放(默认 8080)
-
在代码中确认
application.properties或application.yml设置了正确端口:server.port=8080
2. 开放 Windows 防火墙端口
- 打开「Windows Defender 防火墙」→「高级设置」
- 添加入站规则,允许 TCP 端口 8080
或者用命令:
netsh advfirewall firewall add rule name="Java App Port 8080" dir=in action=allow protocol=TCP localport=8080
五、访问应用
浏览器访问:
http://<服务器IP>:8080
确保服务器网络允许外部访问(云服务器需配置安全组)。
六、日志管理
- 查看输出日志文件(如
log.txt、output.log) - 可结合 Logback 或 Log4j2 配置日志输出路径
七、其他建议
| 项目 | 建议 |
|---|---|
| JVM 参数 | 使用 -Xms、-Xmx 控制内存:java -Xms512m -Xmx2g -jar app.jar |
| 反向X_X | 使用 IIS + ARR 或 Nginx(Windows 版)做反向X_X,隐藏端口 |
| 监控 | 使用 JConsole、VisualVM 或 Prometheus + Micrometer 监控 |
| 自动化部署 | 结合 Jenkins、GitLab CI 实现自动构建部署 |
示例:完整部署 Spring Boot 项目
# 1. 准备目录
mkdir C:deploydemo
copy demo.jar C:deploydemo
# 2. 运行(前台)
cd C:deploydemo
java -jar demo.jar
# 3. 或后台运行
start /B java -jar demo.jar > app.log
# 4. 注册为服务(使用 NSSM)
nssm install MySpringBootApp
# 配置路径和参数后安装
net start MySpringBootApp
如有具体项目类型(如 WAR 包部署到 Tomcat),也可以进一步说明,我会提供对应方案。
是否需要我提供 Tomcat 部署 WAR 包 或 使用 Nginx 反向X_X 的教程?
轻量云Cloud