2014-02-12 23 views
1

我嘗試連接遠程機器使用PsExec.exe,我想對本機做一些工作。 通常我發送請求到遠程機器,它工作正常,但它完成後,它不會返回任何東西,但它應該是正常的。我以爲PsExec.exe掛起這就是爲什麼它不能返回任何東西。使用java中的PsExec.exe

這裏是,我使用java代碼:

 Process p = Runtime.getRuntime().exec(command); 
     InputStream stderr = p.getErrorStream(); 
     InputStreamReader isr = new InputStreamReader(stderr); 
     BufferedReader br = new BufferedReader(isr); 
     String line = null; 
     while ((line = br.readLine()) != null) 
      System.out.println(line); 
     int exitVal = p.waitFor(); 
     System.out.println("Process exitValue: " + exitVal); 

和命令爲:

字符串命令= 「CMD /cc:\PSTools\PsExec.exe \\」 + availableHost .getHostName() + 「的java -cp C:\ SAHI \ lib中\螞蟻sahi.jar net.sf.sahi.test.TestRunner -test」 + waitingTestSet.getPath()+ 「-browserType」 + waitingTestSet.getBrowserType ()+「-baseURL」+ waitingTestSet.getUrl()+「-host localhost -port 9999 -threads」 + ()+「-p」+ availableHost.getuPass()+「-conStr」+ connectionString;} +「-use」

回答

2

使用:

cmd /c c:\PSTools\PsExec.exe 

將導致您啓動cmd.exe過程,進而啓動PsExec.exe。你可能會想「哦,但那就是我想要的」,但它不是。

cmd實際使用該標誌將執行以下操作:於是立即將PsExec.exe過程中被從cmd.exe推出後

/C  Run Command and then terminate 

,該cmd.exe過程結束,因爲它的唯一工作就是啓動PsExec.exe過程並終止。所以從Java的角度來看,一切都完成了。

剛剛嘗試直接運行PsExex.exe,看看是否能返回你想要的輸出。

+0

再次,它沒有終止psexec! – mustafa

+0

打印出你的'command'字符串並在命令提示符下運行它。怎麼了? – Welsh

+0

它沒有工作什麼是錯的? – mustafa