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

Jenkins无法执行Windows VM上的Jar文件,本地CMD正常运行求助

Jenkins远程执行Selenium Jar报错(错误码1)的排查与解决

你遇到的这个情况很典型——手动登录虚拟机能正常跑,但Jenkins用PsExec远程执行就报错错误码1,大概率是执行上下文、环境或会话差异导致的,下面是几个常见的排查方向:

1. 执行用户权限与环境变量差异

Jenkins远程执行PsExec时,默认用的是Jenkins服务的运行用户(通常是本地系统账户或者专门的Jenkins服务账户),而你手动登录用的是自己的用户账户,两者的权限和环境变量可能完全不同:

  • 权限问题:Jenkins的执行用户可能没有访问c:\selenium\testautomation目录的权限,或者没有执行Java程序的权限。可以尝试在PsExec命令里指定和你手动登录相同的用户,比如:
    psexec \\W100001VM.corporate.abc.com -u DOMAIN\YourUsername -p YourPassword java -jar c:\selenium\testautomation\testautomation-3.0.0-20191018.3457.jar DEV RI
    
  • 环境变量问题:Jenkins执行用户的PATH里可能没有Java的路径,导致找不到java.exe。可以试试用Java的完整路径替代java,比如:
    psexec \\W100001VM.corporate.abc.com "C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" -jar c:\selenium\testautomation\testautomation-3.0.0-20191018.3457.jar DEV RI
    

2. 工作目录不匹配

你手动执行时是在c:\selenium\testautomation目录下运行命令,而PsExec默认的工作目录可能是系统盘的Windows目录(比如C:\Windows\System32),如果Jar依赖当前目录的配置文件,就会找不到文件报错。解决方法是指定工作目录:

psexec \\W100001VM.corporate.abc.com -w c:\selenium\testautomation java -jar testautomation-3.0.0-20191018.3457.jar DEV RI

-w参数就是指定PsExec执行时的工作目录。

3. Selenium需要GUI交互会话

Selenium运行需要浏览器的GUI环境,而Jenkins用PsExec远程执行时,默认会在Windows的Session 0(无交互会话)里运行,这个会话没有桌面环境,浏览器无法启动,导致Jar报错退出。解决方法:

  • 确保虚拟机的用户会话处于登录状态(不要锁屏),然后用PsExec指定连接到当前交互会话,添加-i参数:
    psexec \\W100001VM.corporate.abc.com -i 1 java -jar c:\selenium\testautomation\testautomation-3.0.0-20191018.3457.jar DEV RI
    
    这里的1是会话ID,可以通过在虚拟机上运行query user命令查看当前登录用户的会话ID。

4. 捕获详细错误日志

目前只知道错误码1,但Java的具体报错信息没被捕获到,这很难定位问题。可以把Java的标准错误输出重定向到日志文件,方便排查:

psexec \\W100001VM.corporate.abc.com java -jar c:\selenium\testautomation\testautomation-3.0.0-20191018.3457.jar DEV RI > c:\selenium\testautomation\jenkins_test.log 2>&1

执行完后查看jenkins_test.log文件,里面会有Java的具体报错信息,比如找不到依赖、权限不足、浏览器启动失败等。

5. 路径或参数转义问题

如果Jar路径或者参数里有空格,需要用引号包裹,比如如果Java路径有空格:

psexec \\W100001VM.corporate.abc.com "\"C:\Program Files\Java\jdk1.8.0_221\bin\java.exe\"" -jar "\"c:\selenium\testautomation\testautomation-3.0.0-20191018.3457.jar\"" DEV RI

注意这里的引号转义,不同的执行环境可能需要调整引号的写法。

你可以按照上面的顺序一步步排查,先尝试捕获详细日志,再检查用户权限和工作目录,应该能很快定位到问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:20:42