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

在 Windows Server 上部署 Java 服务(Java 应用)是常见的操作,适用于 Spring Boot、Tomcat、或其他基于 Java 的 Web 服务。以下是详细的部署步骤和建议:


✅ 一、准备工作

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

  • 下载并安装 JDK(推荐使用 Oracle JDK 或 OpenJDK)。

    • 推荐版本:JDK 8、JDK 11、JDK 17(根据项目需求选择长期支持版本 LTS)。
    • 下载地址:
    • Oracle JDK
    • OpenJDK
  • 安装完成后配置环境变量:

    JAVA_HOME = C:Program FilesJavajdk-17
    PATH += %JAVA_HOME%bin

    可通过命令验证:

    java -version
    javac -version

✅ 二、准备 Java 服务程序

1. 获取 Java 应用包

  • 常见格式:
    • .jar 文件(如 Spring Boot 项目)
    • .war 文件(部署到 Tomcat 等容器)
    • 或使用 Tomcat、Jetty 等应用服务器运行

2. 示例:Spring Boot 打包成可执行 JAR

mvn clean package

生成文件如:myapp.jar


✅ 三、部署方式(推荐)

方式一:直接运行 JAR(推荐用于 Spring Boot)

1. 测试运行

java -jar myapp.jar

访问 http://localhost:8080 查看是否正常。

2. 设置后台运行(不推荐直接用 cmd)

  • 使用 PowerShell 脚本Windows 服务 来实现开机自启、后台运行。

方式二:将 Java 应用注册为 Windows 服务(推荐生产环境)

使用工具将 JAR 包注册为 Windows Service,实现开机自启、自动重启。

推荐工具:NSSM (Non-Sucking Service Manager)

1. 下载 NSSM
  • 官网:https://nssm.cc/download
  • 下载后解压(如:C:nssm
2. 注册服务

打开命令提示符(管理员权限):

C:nssmwin64nssm.exe install MyJavaApp

弹出配置窗口:

  • Application 选项卡:

    • Path: C:Program FilesJavajdk-17binjava.exe
    • Arguments: -jar "C:appsmyapp.jar"
    • Startup directory: C:apps
  • Details 选项卡(可选):

    • 描述:My Spring Boot Application
    • 启动类型:自动
  • Log On 选项卡:

    • 默认使用 Local System,或指定用户账户

点击 Install service

3. 启动服务
net start MyJavaApp

或通过「服务」管理器启动。

4. 查看日志

NSSM 默认会记录输出日志,可在配置中设置日志路径。


方式三:使用 Tomcat 部署 WAR 包

1. 下载并安装 Apache Tomcat

  • 下载地址:https://tomcat.apache.org/
  • 解压到目录,如:C:tomcat

2. 配置环境变量(可选)

CATALINA_HOME = C:tomcat

3. 部署 WAR 包

  • myapp.war 复制到 C:tomcatwebapps
  • 启动 Tomcat:
    C:tomcatbinstartup.bat

4. 注册为服务(可选)

使用 service.bat 将 Tomcat 安装为 Windows 服务:

C:tomcatbinservice.bat install TomcatMyApp

然后通过服务管理器启动。


✅ 四、防火墙与端口配置

确保服务器防火墙允许外部访问应用端口(如 8080):

# 以管理员身份运行 CMD
netsh advfirewall firewall add rule name="Java App Port 8080" dir=in action=allow protocol=TCP localport=8080

✅ 五、常用维护命令

# 查看服务状态
sc query MyJavaApp

# 重启服务
net stop MyJavaApp
net start MyJavaApp

# 卸载服务(NSSM)
nssm remove MyJavaApp confirm

✅ 六、日志与监控

  • 将 Java 应用日志输出到文件,例如:
    java -jar myapp.jar > C:logsapp.log 2>&1
  • 或在代码中使用 Logback / Log4j 配置日志路径。
  • 可结合 Windows 事件查看器或第三方监控工具(如 Prometheus + JMX Exporter)。

✅ 七、安全建议

  1. 使用非管理员账户运行服务
  2. 定期更新 JDK 和应用依赖
  3. 配置 HTTPS(可结合 Nginx / IIS 反向X_X)
  4. 限制远程访问 IP(通过防火墙或应用配置)

✅ 八、进阶:使用 Nginx/IIS 反向X_X(可选)

  • 使用 IIS 或 Nginx 做反向X_X,统一管理端口(80/443),并支持 HTTPS。

示例 Nginx 配置:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

总结

部署方式 适用场景 是否推荐
直接运行 JAR 测试环境 ⚠️ 临时
NSSM 注册服务 生产环境(Spring Boot) ✅ 强烈推荐
Tomcat 部署 WAR 传统 Java Web 项目 ✅ 推荐
Docker 容器化 高级部署、微服务架构 ✅ 未来趋势

如果你提供具体的应用类型(如 Spring Boot、普通 Web 项目等),我可以给出更详细的部署脚本和配置。

是否需要我为你生成一个 NSSM 部署的完整脚本?

未经允许不得转载:云知道CLOUD » Windows server服务器上部署Java服务?