Windows server服务器上部署Java服务?

服务器

在 Windows Server 上部署 Java 服务,通常包括以下几个步骤:安装 Java 环境、准备 Java 应用(如 JAR 包)、配置运行环境、将应用设置为 Windows 服务以便开机自启。以下是详细的操作流程:


一、准备工作

  1. 确认 Windows Server 版本

    • 如:Windows Server 2016/2019/2022
    • 确保有管理员权限
  2. 下载 Java 运行环境(JRE 或 JDK)

    • 推荐使用 OpenJDKOracle JDK
    • 下载地址:
      • https://adoptium.net/(推荐,免费)
      • https://www.oracle.com/java/technologies/downloads/

    建议选择 x64 MSI 安装包,便于在 Windows 上安装。


二、安装 Java

  1. 运行安装包

    • 双击 .msi 文件安装 JDK/JRE
    • 默认路径通常是:C:Program FilesJavajdk-xx.x.x
  2. 配置环境变量

    • 打开“系统属性” → “高级” → “环境变量”
    • 添加系统变量:
      • JAVA_HOMEC:Program FilesJavajdk-xx.x.x
      • Path 中添加:%JAVA_HOME%bin
  3. 验证安装

    java -version
    javac -version   # 如果安装了JDK

    出现版本信息即成功。


三、准备 Java 应用

假设你有一个 Spring Boot 或普通 Java 项目打包成的 JAR 文件,例如:myapp.jar

  1. 将 JAR 文件上传到服务器,例如放到:

    D:java-appsmyapp.jar
  2. 测试运行:

    java -jar D:java-appsmyapp.jar

    确保应用能正常启动。


四、将 Java 应用注册为 Windows 服务

Java 本身不能直接作为 Windows 服务运行,需要借助工具包装成服务。常用工具:

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

  1. 下载 NSSM

    • 地址:https://nssm.cc/download
    • 下载 nssm-2.24.zip,解压到 C:nssm(或其他目录)
  2. 运行 NSSM GUI

    C:nssmnssm.exe install MyJavaApp
  3. 配置服务

    • Application tab:
      • Path: C:Program FilesJavajdk-xx.x.xbinjava.exe
      • Arguments: -jar D:java-appsmyapp.jar
      • Startup directory: D:java-apps
    • Details tab:
      • Service name: MyJavaApp
      • Description: My Java Application Service
    • Log On tab:
      • 选择账户(默认 Local System,或指定用户)
    • Recovery tab:
      • 设置失败重启策略(如:第一次失败后重启)
  4. 安装并启动服务

    C:nssmnssm.exe start MyJavaApp

    或通过“服务”管理器(services.msc)查看并启动服务。


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

  1. 下载 prunsrv.exe(来自 Apache Commons Daemon)

    • 地址:https://commons.apache.org/proper/commons-daemon/
  2. 示例命令注册服务:

    prunsrv.exe //IS//MyJavaApp ^
     --DisplayName="My Java App" ^
     --Description="Java Application as Service" ^
     --Startup=auto ^
     --Install="C:prunsrv.exe" ^
     --Jvm="%JAVA_HOME%binserverjvm.dll" ^
     --Classpath="D:java-appsmyapp.jar" ^
     --StartMode=jvm ^
     --StartClass=org.springframework.boot.loader.JarLauncher ^
     --StartParams=start ^
     --LogPath="D:logs"

    此方法较复杂,适合高级用户。


五、配置防火墙(如需要外部访问)

如果应用监听端口(如 8080),需开放防火墙:

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

六、日志与监控

  1. 日志文件

    • 在启动命令中重定向输出:
      java -jar myapp.jar > app.log 2>&1
    • 或在应用内部配置日志框架(如 logback、log4j2)
  2. 查看服务状态

    • 使用任务管理器、services.msc 或命令:
      sc query MyJavaApp
  3. 查看日志

    • 查看应用日志文件或 Windows 事件日志

七、常见问题排查

问题 解决方法
服务启动后立即停止 检查 JAR 路径、Java 路径、是否有依赖缺失
端口被占用 使用 netstat -ano | findstr :8080 查看并关闭占用进程
权限不足 确保服务运行账户有足够权限访问 JAR 和目录
中文乱码 启动时加参数:-Dfile.encoding=UTF-8

八、自动化脚本示例(可选)

创建批处理文件 start-service.bat

@echo off
cd /d D:java-apps
java -jar myapp.jar --spring.profiles.active=prod > app.log 2>&1

然后用 NSSM 调用该脚本。


总结

✅ 推荐流程:

  1. 安装 JDK 并配置环境变量
  2. 放置 JAR 文件
  3. 使用 NSSM 将 Java 应用注册为 Windows 服务
  4. 配置自动启动、日志、防火墙
  5. 测试并监控运行状态

如果你提供具体的 Java 框架(如 Spring Boot、Tomcat、普通 JAR),我可以给出更详细的部署建议。

未经允许不得转载:CDNK博客 » Windows server服务器上部署Java服务?