在 Windows 服务器上部署 Java 项目是一个常见的任务,适用于运行 Web 应用、后端服务等。以下是详细的步骤和注意事项:
🧩 一、准备环境
1. 安装 Java 运行环境(JRE 或 JDK)
Java 项目需要 Java 环境来运行。
✅ 推荐安装 JDK(包含 JRE):
- 下载地址:https://adoptium.net/zh-CN/temurin/releases/
- 选择适合你项目的版本(如 JDK 8、11、17)
安装步骤:
- 下载并运行安装程序(
.msi文件) - 安装完成后设置环境变量:
JAVA_HOME: 指向 JDK 的安装目录(例如C:Program FilesJavajdk-17.0.1)- 在
Path中添加%JAVA_HOME%bin
验证安装:
java -version
javac -version
📦 二、部署 Java 项目(以 Spring Boot 为例)
如果你的项目是打包成 .jar 文件(Spring Boot 常见方式),操作如下:
1. 将你的 Java 项目打包上传到服务器
- 使用 Maven/Gradle 构建生成
.jar文件 - 通过 FTP、SCP、远程桌面等方式上传到服务器某个目录,例如:
D:myappmyproject.jar
2. 启动 Java 项目
在命令行中执行:
java -jar myproject.jar
默认情况下,这会启动一个内嵌 Tomcat 的 Web 服务,默认监听 8080 端口。
🔧 三、配置开机自启动 & 后台运行
默认使用 java -jar 是前台运行,关闭窗口就会终止进程。你可以选择以下方式让其后台运行或开机自启。
方法 1:使用 Windows 服务包装器(推荐)
推荐工具:NSSM (Non-Sucking Service Manager)
官网:https://nssm.cc/download
步骤:
-
下载并解压 NSSM
-
打开命令提示符,进入解压目录,运行:
nssm install MyJavaApp -
弹出配置界面填写:
- Path:
C:Program FilesJavajdk-17.0.1binjava.exe - Arguments:
-jar "D:myappmyproject.jar" - Startup directory:
D:myapp
- Path:
-
点击 Install
-
可以通过服务管理器(services.msc)查看并启动服务
方法 2:使用批处理脚本 + 后台运行
创建一个 .bat 脚这里件,内容如下:
@echo off
cd /d D:myapp
start javaw -jar myproject.jar
保存为 start.bat,双击运行即可以后台方式启动。
🌐 四、开放防火墙端口
如果项目提供 Web 服务(如 8080 端口),需要开放 Windows 防火墙:
- 打开“控制面板” > “系统和安全” > “Windows Defender 防火墙”
- 点击“高级设置”
- 在“入站规则”中新建规则:
- 类型选择“端口”
- 协议选择 TCP
- 指定本地端口(如 8080)
- 允许连接
📊 五、日志与监控
建议将日志输出到文件,方便排查问题:
java -jar myproject.jar > app.log 2>&1
或者在代码中配置日志框架(如 Logback、Log4j2)写入文件。
🔄 六、更新项目
当有新版本时:
- 停止当前服务(如果是 NSSM 服务,则停止服务)
- 替换 jar 包
- 重启服务或脚本
🧪 七、常见问题排查
| 问题 | 解决方法 |
|---|---|
java is not recognized |
检查 JAVA_HOME 和 Path 环境变量 |
| 端口被占用 | 修改 application.properties 中的 server.port |
| 权限不足 | 以管理员身份运行 CMD 或 NSSM 安装的服务 |
| 内存溢出 | 增加 JVM 参数:-Xms512m -Xmx2g |
✅ 总结
| 步骤 | 内容 |
|---|---|
| 1 | 安装 JDK 并配置环境变量 |
| 2 | 上传 jar 文件 |
| 3 | 使用 java -jar 启动测试 |
| 4 | 使用 NSSM 设置为 Windows 服务 |
| 5 | 开放防火墙端口 |
| 6 | 日志记录与后续维护 |
如果你能提供更具体的项目类型(如 Spring Boot、Tomcat WAR 包、普通 Java 程序等),我可以给出更针对性的部署方案。需要我继续补充吗?
云计算导航