2016-06-09 135 views
1

Windows Power Shell启动后无法获取java进程的详细信息。它适用于“记事本”,但不适用于java。Powershell启动进程Java PassThru

工作记事本CMD:

PS > $apmax=Start-Process notepad "abc.txt" -PassThru 

失败的java:

PS > $apmax=Start-Process java "-jar ApMaxProvMngr-1.0.jar" -PassThru 
Start-Process : This command cannot be run completely because the system cannot find all the information 
required. 
At line:1 char:8 
+ $apmax=Start-Process java "-jar ApMaxProvMngr-1.0.jar" -PassThru 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [Start-Process], InvalidOperationException 
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand 

我缺少的东西在这里?

回答

0
  1. 使用明确的'ArgumentList'参数(请参阅docs);
  2. 分别传递多个参数。

    $apmax=Start-Process java -ArgumentList '-jar','ApMaxProvMngr-1.0.jar' -PassThru 
    
+0

PS> $ apmax =启动过程的java -ArgumentList '-jar', 'ApMaxProvMngr-1.0.jar' -PassThru 启动过程:此命令不能完全运行,因为该系统不能找到所有需要的信息。 在线:1 char:8 + $ apmax =启动过程java -ArgumentList'-jar','ApMaxProvMngr-1.0.jar ... + ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :InvalidOperation:(:) [Start-Process],InvalidOperationException + FullyQualifiedErrorId:InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand –

+0

即使使用“-ArgumentList”,它也不工作。问题似乎是在PS中获取java进程的详细信息。即使没有任何参数,我也会看到这个问题:PS> $ apmax =启动过程java -PassThru 启动过程:由于系统找不到所需的全部信息,因此无法完全运行此命令。 –

+0

您的java命令在cmd控制台中工作吗?你有没有尝试提供java.exe的绝对路径?你有没有尝试使用javaw而不是java? – ursa