我需要从PowerShell调用一个Java程序(jar文件)。 以下代码工作:
java -jar $cls --js $dcn --js_output_file $dco
但我需要在一个进程中运行应用程序(使用Start-Process
)。
我正在尝试以下没有成功:
Start-Process -FilePath java -jar $cls --js $dcn --js_output_file $dco -wait -windowstyle Normal
错误:
Start-Process : A parameter cannot be found that matches parameter name 'jar'.
任何想法如何解决它?
您将需要使用以下格式的PowerShell:
Start-Process java -ArgumentList '-jar', 'MyProgram.jar' ` -RedirectStandardOutput '.\console.out' -RedirectStandardError .\console.err'
或者您可以使用的其他选项是开始工作:
Start-Job -ScriptBlock { & java -jar MyProgram.jar >console.out 2>console.err }
看起来像-jar
被认为是Start-Process
一个参数,而不是被传递给java
。
尽管文档中声明-ArgumentList
是可选的,我怀疑这不包括-option
类型的东西。
您可能需要使用:
Start-Process -FilePath java -ArgumentList ...
例如,在Powershell ISE中,下面一行提示Java帮助(虽然很快消失):
Start-Process -FilePath java -argumentlist -help
但是这一行:
Start-Process -FilePath java -help
导致Powershell 本身抱怨-help
。