如何从PowerShell调用Java程序?


问题内容

我需要从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:

Start-Job -ScriptBlock {
  & java -jar MyProgram.jar >console.out 2>console.err
}