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

PowerShell中Start-Process的ArgumentList启动Java进程时参数被截断

PowerShell启动Java进程参数截断问题解决

错误原因

你的写法存在两个核心问题:

  1. 参数拆分错误:将-jar与jar路径、-secret与密钥等合并为单个字符串传递,PowerShell解析这类包含长字符串的复合参数时,容易出现截断或解析异常。
  2. 路径引号冗余:给workDir路径添加的单引号会被Java当成路径的一部分,导致路径识别错误,同时也干扰了参数列表的正常解析。

正确写法

将每个命令行选项(如-jar、-secret)和对应的参数值拆分为独立的数组元素,PowerShell会正确处理每个部分,避免截断:

Start-Process -FilePath java.exe -ArgumentList `
    "-jar", "C:\Users\myUser\Desktop\agent.jar", `
    "-jnlpUrl", "http://jenkins.mysecretdomain.com:8080/manage/computer/myJenkinsNode/jenkins-agent.jnlp", `
    "-secret", "1234567890abcdefgh1234567890abcdefgh1234567890abcdefgh1234567890", `
    "-workDir", "e:\myFolder\Jenkins\"

也可以先定义参数数组,再传递,可读性更好:

$javaArgs = @(
    "-jar", "C:\Users\myUser\Desktop\agent.jar",
    "-jnlpUrl", "http://jenkins.mysecretdomain.com:8080/manage/computer/myJenkinsNode/jenkins-agent.jnlp",
    "-secret", "1234567890abcdefgh1234567890abcdefgh1234567890abcdefgh1234567890",
    "-workDir", "e:\myFolder\Jenkins\"
)
Start-Process -FilePath java.exe -ArgumentList $javaArgs

排查辅助

如果进程仍异常退出,可添加-NoNewWindow和-Wait参数,直接在PowerShell窗口查看Java的错误输出,快速定位问题:

Start-Process -FilePath java.exe -ArgumentList $javaArgs -NoNewWindow -Wait

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 19:15:54