PowerShell脚本实现带/不带参数运行Java jar包的方法
PowerShell 实现 Java Jar 带参/无参启动脚本
需求与踩坑背景
写PowerShell脚本启动Java Jar包时,需要同时兼容两种调用场景:
- 无参数直接启动Jar包
- 传入自定义参数启动Jar包
之前查阅了大量同类问题解答,包括微软官方PowerShell文档,始终没找到能直接生效的简便实现。从相关技术社区的同类讨论来看,很多开发者都觉得用PowerShell做这类基础操作十分繁琐。
最初的逻辑设想用伪代码写出来大概是:
# 初始伪代码思路 $PathToApp = "C:\App" if ($PathToApp 存在) { if 无额外传入参数 { 切换到PathToApp目录 执行启动命令:java -jar app.jar } elseif 有额外传入参数 { 切换到PathToApp目录 执行启动命令:java -jar app.jar $传入的参数 } } else { 输出报错:"应用路径未配置..." }
最终要实现的调用效果:
- 直接执行
./runprogram.ps1即可完成无参启动 - 执行
./runprogram.ps1 file.txt即可带着自定义参数启动
可直接落地的实现脚本
经过调试跑通的可用脚本如下,供有同类需求的开发者参考:
param( [string]$OpenFile ) $AppPath = "C:\App.jar" # 校验Jar包路径是否存在 if (-not(Test-Path $AppPath)) { Write-Error "未找到应用Jar包路径..." } else { if(-not($OpenFile)) { # 无参数启动 Start-Process -FilePath java.exe -ArgumentList "-jar $AppPath" } else { # 带传入参数启动 Start-Process -FilePath java.exe -ArgumentList "-jar $AppPath $OpenFile" } }
内容的提问来源于stack exchange,提问作者boardkeystown
相关产品推荐
相关产品推荐

