如何在Jenkins Pipeline中运行指定文件夹下的jar文件
解决方案
完整Pipeline示例
// 此处label替换为你自己的Windows目标节点标签,需提前将目标Windows系统配置为Jenkins的运行节点 pipeline { agent { label 'windows-target-node' } stages { stage('启动Java应用') { steps { // 切换到jar包所在的D盘根目录 dir('D:\\') { // 内置bat步骤自动调用cmd.exe,在当前目录下执行命令 bat ''' @echo off :: 直接运行jar包,若需要后台常驻不阻塞Jenkins任务,替换为下一行命令 :: start javaw -jar abc.jar java -jar abc.jar ''' } } } } }
问题对应解答
- Pipeline访问指定文件夹:使用Jenkins Pipeline内置的
dir步骤即可直接切换工作目录到目标路径,也可以直接在bat脚本中使用cd /d 目标路径完成目录切换 - 指定路径下启动cmd.exe:Pipeline的
bat步骤默认会调用目标Windows节点的cmd.exe执行命令,只要提前切换到目标目录,cmd就会在对应路径下启动 - 对应位置运行jar文件:在bat步骤中直接执行
java -jar abc.jar即可,和本地命令行操作逻辑完全一致
补充注意事项
- 需提前在目标Windows节点配置Java环境,若环境变量未全局生效,可替换为Java的绝对路径执行,例如
"C:\Program Files\Java\jdk1.8.0_333\bin\java.exe" -jar abc.jar - 如果需要应用在Jenkins任务结束后仍后台运行,必须使用
start javaw -jar abc.jar命令,否则Jenkins会一直等待Java进程退出,任务始终处于运行中状态 - 需确认Jenkins Agent的运行账户对jar包所在目录、Java执行路径拥有访问和执行权限
替代实现方案
如果不需要拆分步骤,也可以直接用一行bat命令完成所有操作,无需使用dir步骤:
pipeline { agent { label 'windows-target-node' } stages { stage('启动Java应用') { steps { bat 'cd /d D:\\ && java -jar abc.jar' } } } }
内容的提问来源于stack exchange,提问作者ViBe
相关产品推荐
相关产品推荐

