psexec在使用Java运行时暂停

psexec在使用Java运行时暂停,java,psexec,Java,Psexec,我正在使用psexec和sc query state=all打印远程服务器上的所有服务。我想解析这个的输出,并且一直在尝试使用BufferedReader来完成这项工作 Runtime rt = Runtime.getRuntime(); String line = null; Process pr = null; pr = rt.exec("test.bat"); BufferedReader input = new BufferedReader(new InputStreamReader

我正在使用
psexec
sc query state=all
打印远程服务器上的所有服务。我想解析这个的输出,并且一直在尝试使用
BufferedReader
来完成这项工作

Runtime rt = Runtime.getRuntime();
String line = null;
Process pr = null;

pr = rt.exec("test.bat");

BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

while((line = input.readLine()) != null) {
    System.out.println(line);
}
测试蝙蝠

 psexec \\server -u username -p password sc query state= all
当我从命令行窗口运行
psexec\\server-u username-p password sc query state=all
时,我得到了这个结果

SERVICE_NAME: Tomcat6 
    TYPE               : 10  WIN32_OWN_PROCESS  
    STATE              : 4  RUNNING 
    WIN32_EXIT_CODE    : 0  (0x0)
    SERVICE_EXIT_CODE  : 0  (0x0)
    CHECKPOINT         : 0x0
    WAIT_HINT          : 0x0

SERVICE_NAME: ActiveMQ 
    TYPE               : 10  WIN32_OWN_PROCESS  
    STATE              : 4  RUNNING 
    WIN32_EXIT_CODE    : 0  (0x0)
    SERVICE_EXIT_CODE  : 0  (0x0)
    CHECKPOINT         : 0x0
    WAIT_HINT          : 0x0

etc.
但是在Java中,它打印第一个服务,然后停止,所以打印输出是这样的

SERVICE_NAME: Tomcat6 
    TYPE               : 10  WIN32_OWN_PROCESS  
    STATE              : 4  RUNNING 
    WIN32_EXIT_CODE    : 0  (0x0)
    SERVICE_EXIT_CODE  : 0  (0x0)
    CHECKPOINT         : 0x0
    WAIT_HINT          : 0x0

您是否尝试过使用等待?。可能程序正在退出而不等待进程终止。尝试使用:

pr = rt.exec("test.bat");
pr.waitFor();

您是否尝试过使用等待?。可能程序正在退出而不等待进程终止。尝试使用:

pr = rt.exec("test.bat");
pr.waitFor();

将psexec与Java一起使用似乎存在一个问题。我改用paexec,一切都很好。

在Java中使用psexec似乎有问题。我切换到paexec,一切都很好。

是的,我有,它产生相同的结果。是的,我有,它产生相同的结果。