Comment obtenir jsch shell de sortie de la commande en Chaîne

Je suis à l'aide d'un JSCH -SSH bibliothèque d'exécuter la commande "shell" de canal, mais incapable de trouver un moyen
faire 2 choses:-

1) Comment savoir si la commande est complètement exécuté sur unix distant boîte ?

2) Comment faire pour capturer la sortie de la commande dans la Chaîne , au lieu de l'impression sur le Système.sortie de la console ?

Ci-dessous est mon extrait de code qui fonctionne très bien à l'affichage de la ligne de commande à la sortie du système.hors

REMARQUE :je ne veux PAS utiliser ,"exec" de canal, car il commence un nouveau processus pour chaque commande et ne se souvient pas de "session", les variables qui ont été exportées. Je dois utiliser une "coquille" de canal.

Ci-dessous mon code extrait. Toute aide est appréciée.Merci pour votre temps.

try{

  String commandToRun = "ls /tmp/*.log \n";
  if(channel.isClosed())
      channel=session.openChannel("shell");
  byte[] bytes = commandToRun.getBytes();
  ByteArrayInputStream bais=new ByteArrayInputStream(bytes);
  channel.setInputStream(bais);
  InputStream ins=channel.getInputStream();
  channel.connect();
  channel.setOutputStream(System.out);//This prints on console. Need 2 capture in String somehow?

  //in-efficient way to allow command to execute completely on remote Unix machine
  //DO NOT know a better way, to know when command is executed completely
  Thread.sleep(5000L);
}
 catch(Exception e){
  System.out.println("Exception  in executeCommand() --->"+ e.getMessage());
  e.printStackTrace();
}
stackoverflow.com/a/25845360/1917804
En général, vous ne devriez pas utiliser "shell" de canal pour automatiser l'exécution d'une commande. Utiliser "exec" de canal à la place. Voir Execute une liste de commandes à partir d'une liste de tableaux à l'aide de JSch exec en Java. Si vous utilisez la "coquille" de canal, vous obtenez des problèmes tôt ou tard. Voir un exemple de questions possibles à partir de plusieurs, voir JSch question - Ne peut pas récupérer la pleine commande de sortie

OriginalL'auteur vishy | 2014-09-11