Windows上部署jar包并在后台运行的方案

问题描述

在企业开发中,难免会遇到jar包的部署,那么如果服务器是Windows系统,我们又将如何部署我们的java应用,并让其在后台运行呢?下面,让我们直接上方法。

解决方案

配置环境变量

确保已经安装了Java并配置了JAVA_HOME环境变量。
添加Java运行时环境到系统的PATH环境变量中,以便系统能够找到Java执行文件。

注意:由于javaw不关联控制台,某些环境下可能无法捕获输出,此时建议使用方法二

方案一 :使用批处理文件

1.创建一个批处理文件(以.bat结尾,如run.bat),用于启动Java应用。
编写批处理文件,包括后台启动jar包的命令以及日志文件保存位置。

@echo off
start javaw -jar -Dfile.encoding=UTF-8 hello.jar > "D:\logs\output.log" 2>&1
exit

编写完脚本,保存,并双击运行,此时jar包将在后台进行运行,并在指定位置输出日志,关闭窗口后,程序照样运行
注:上述脚本中hello.jar需要替换为自己的jar包名称。
在这里插入图片描述

方案二:使用VBScript隐藏窗口并重定向

  1. 创建VBScript文件(如run.vbs),内容如下:
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "cmd /c java -jar D:\hello.jar > D:\logs\output.log 2>&1", 0, True
    Set WshShell = Nothing
    
  2. 说明:
    cmd /c:执行命令后关闭命令窗口。
    0:隐藏窗口。
    True:等待命令执行完成(若需后台运行可改为False)。
  3. 运行VBScript:双击run.vbs,日志将写入文件且无可见窗口。

关闭后台启动的服务

方案1:通过 任务管理器 手动关闭

  1. 打开任务管理器
  2. 查找 Java 进程:
    切换到 详细信息 选项卡。
    查找进程名为:
    java.exe(控制台模式启动的 Java 进程)
    javaw.exe(无控制台窗口的 Java 进程,常见于后台服务或 GUI 应用)
  3. 结束进程
    找到进程后点击结束。
    在这里插入图片描述

在后台启动的jar包,可以直接在cmd命令窗口输入命令 taskkill -f -t -im javaw.exe 就能关闭此 jar 进程,但是需要注意的是,如果有其它java应用也在后台运行,此命令将关闭所有jar进程,因此建议使用以下命令关闭后台启动的java服务

# 根据端口号找到进程 pid
netstat -ano |findstr 端口号
# 再用 taskkill 关闭该进程
taskkill /f /t /im pid

如下运行结果:
在这里插入图片描述

后台运行Java应用

使用Windows任务计划程序。搜索任务计划程序,并以管理员身份运行,在任务计划程序窗口创建基本任务,触发器选择计算机启动时,选择之前的run.vbs脚本可以将Java应用设置为定时任务,并选择在后台运行。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值