You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Windows PowerShell关闭会话后运行Java后台任务的命令

解决Windows PowerShell后台运行Java应用且关闭终端不终止的方法

Start-Job创建的作业依赖当前PowerShell会话,会话关闭后进程会被强制终止,所以得用脱离会话的方式运行Java程序:

方法1:用Start-Process启动独立进程

直接启动Java进程,让它完全脱离PowerShell会话,关闭终端后依然运行:

Start-Process java -ArgumentList "-jar .\app.jar" -NoNewWindow -WindowStyle Hidden
  • -NoNewWindow:不在新窗口中运行程序
  • -WindowStyle Hidden:隐藏程序窗口,实现后台运行

如果需要记录输出日志,可添加重定向参数:

Start-Process java -ArgumentList "-jar .\app.jar" -NoNewWindow -WindowStyle Hidden `
  -RedirectStandardOutput ".\app_stdout.log" `
  -RedirectStandardError ".\app_stderr.log"

注意:如果系统PATH里没配置Java路径,要换成Java.exe的绝对路径,比如"C:\Program Files\Java\jdk1.8.0_301\bin\java.exe"

方法2:创建Windows计划任务(更持久)

如果需要程序开机自动启动,或者完全独立于任何用户会话运行,用计划任务更可靠:

创建任务(开机自启)

schtasks /create /tn "MyJavaApp" `
  /tr "C:\Program Files\Java\jdk1.8.0_301\bin\java.exe -jar C:\full\path\to\app.jar" `
  /sc onstart /ru SYSTEM
  • /tn:指定任务名称(自定义)
  • /tr:要执行的命令,必须用绝对路径(计划任务默认工作目录不是当前文件夹)
  • /sc onstart:设置为开机时启动
  • /ru SYSTEM:用系统账户运行,无需用户登录

手动启动任务

如果不需要开机自启,先创建按需执行的任务:

schtasks /create /tn "MyJavaApp" `
  /tr "C:\Program Files\Java\jdk1.8.0_301\bin\java.exe -jar C:\full\path\to\app.jar" `
  /sc ondemand /ru SYSTEM

然后手动启动:

schtasks /run /tn "MyJavaApp"

停止任务

需要停止程序时,执行:

schtasks /end /tn "MyJavaApp"

内容的提问来源于stack exchange,提问作者Springhills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:01:07