走啊走
加油

windows server部署java程序?

服务器价格表

在 Windows Server 上部署 Java 程序是一个常见的需求,尤其适用于运行基于 Spring Boot、Java Web 应用或其他 Java 后端服务。以下是详细的部署步骤和最佳实践:


一、准备工作

1. 安装 Java 运行环境(JRE 或 JDK)

  • 下载 JDK(推荐使用 Oracle JDK、OpenJDK 或 Adoptium):
    • 官网示例:https://adoptium.net/(免费开源)
  • 下载适合 Windows Server 的 .msi 安装包(64位)。
  • 安装完成后,配置环境变量。

2. 配置环境变量

以管理员身份打开“系统属性” → “高级” → “环境变量”,设置:

JAVA_HOME = C:Program FilesJavajdk-17  (根据实际路径)
Path 添加:%JAVA_HOME%bin

验证是否安装成功:

java -version
javac -version

二、准备 Java 程序

1. 获取可执行的 JAR 包

  • 如果是 Spring Boot 项目,使用 Maven 构建:

    mvn clean package

    生成 target/myapp.jar

  • 将 JAR 文件上传到服务器(可通过 FTP、远程桌面复制等方式)。

2. 测试运行

进入命令行,运行:

java -jar myapp.jar

如果程序正常启动并监听端口(如 8080),说明可以运行。


三、设置为后台服务(推荐)

直接运行 java -jar 在关闭窗口后会终止进程。建议将 Java 程序注册为 Windows 服务。

方法一:使用 NSSM(Non-Sucking Service Manager)——推荐

  1. 下载 NSSM

    • 官网:https://nssm.cc/download
    • 下载 win64 版本,解压到 C:nssm
  2. 安装服务
    打开命令提示符(管理员):

    C:nssmnssm.exe install MyJavaApp
  3. 在弹出窗口中配置:

    • Path: C:Program FilesJavajdk-17binjava.exe
    • Arguments: -jar "D:appsmyapp.jar"
    • Startup directory: D:apps(JAR 所在目录)
  4. 点击 “Install service”

  5. 启动服务:

    net start MyJavaApp
  6. 查看服务状态:

    • 打开“服务”管理器(services.msc),找到 MyJavaApp

✅ 优点:自动启动、崩溃重启、日志记录等。


方法二:使用 Apache Commons Daemon(procrun)

适用于更精细控制,但配置较复杂。略。


四、配置防火墙和端口

确保客户端能访问应用端口(如 8080):

  1. 打开“高级安全 Windows 防火墙”
  2. 添加入站规则:
    • 协议:TCP
    • 端口:8080
    • 允许连接

或使用命令行:

netsh advfirewall firewall add rule name="Java App Port 8080" dir=in action=allow protocol=TCP localport=8080

五、配置开机自启 & 故障恢复

在“服务”管理器中,右键你的服务 → 属性:

  • 启动类型:自动
  • 恢复:第一次失败 → 重启服务;第二次失败 → 重启服务器等

六、日志管理

  • Java 程序的日志通常输出到控制台,NSSM 可重定向到文件。
  • 在 NSSM 配置中设置:
    • I/O → Output → D:logsmyapp.log
  • 建议使用 Logback / Log4j2 输出到文件,并定期归档。

七、监控与维护

  • 使用任务管理器或 PowerShell 监控 Java 进程:
    Get-Process java
  • 设置定时脚本检查服务状态(可选)
  • 考虑集成 Zabbix、Prometheus + JMX Exporter 进行监控

八、安全建议

  • 不要使用默认账户运行服务,创建专用用户。
  • 限制服务权限。
  • 定期更新 JDK 和应用依赖。
  • 使用 HTTPS(可结合 Nginx 或 IIS 反向X_X)

示例:Spring Boot 部署完整流程

  1. 本地打包:
    mvn clean package
  2. 上传 target/demo-0.0.1.jar 到服务器 D:app
  3. 使用 NSSM 注册为服务
  4. 开放防火墙 8080 端口
  5. 启动服务,浏览器访问 http://服务器IP:8080

常见问题排查

问题 解决方法
java is not recognized 检查 JAVA_HOME 和 Path
端口被占用 netstat -ano | findstr :8080 查杀进程
权限不足 以管理员身份运行 NSSM 或 CMD
服务启动失败 查看 NSSM 日志输出路径

如有具体框架(如 Spring Boot、Tomcat)、是否需要反向X_X(Nginx/IIS)、数据库连接等,可进一步细化方案。

需要我提供自动化部署脚本(PowerShell)或结合 IIS/Nginx 的反向X_X配置吗?