2016-05-04 3 views
0
private String test(String command){ 
    channel = sesConnection.openChannel("exec"); 
    ((ChannelExec) channel).setCommand(command); 
    BufferedReader br = 
    new BufferedReader(new InputStreamReader(channel.getInputStream())); 
    InputStream error = ((ChannelExec) channel).getErrStream(); 
    channel.connect(); 
    StringBuffer outputstream = new StringBuffer(); 
    String msg = null; 
    while ((msg = br.readLine()) != null) { 
      outputstream.append(msg);    
    } 
    System.out.println("Channel exit status:" + channel.getExitStatus()); 
} 

Antwort

0
  • Wenn die command beendet (so die "exec" Kanal schließt) machen und Exit-Code 1.
  • gibt, oder wenn der Kanal noch nicht geöffnet (Was ist normalerweise, wenn command kein gültiger Befehl ist).
+0

Aber wenn dieser Befehl erfolgreich ausgeführt wird, wird 0 als erfolgreiche Flag zurückgegeben. – Acacia

+0

Ich habe einen Satz als "System.out.println (channel.isClosed())" versuchen, um zu überprüfen, ob der Kanal geschlossen ist und feststellen, dass nach dieser While-Schleife der Kanal noch nicht geschlossen wurde. – Acacia

+0

So wurde der Befehl höchstwahrscheinlich nicht erfolgreich abgeschlossen. Lesen Sie die Fehlerausgabe, um festzustellen, ob Fehler aufgetreten sind. –

Verwandte Themen