L'envoi de commandes au serveur via JSch shell canal

Je peux pas comprendre comment je peux envoyer des commandes via JSch shell canal.

Je le fais, mais ça ne fonctionne pas:

JSch shell = new JSch();
String command = "cd home/s/src";  
Session session = shell.getSession(username, host, port);  
MyUserInfo ui = new MyUserInfo();  
ui.setPassword(password);  
session.setUserInfo(ui);  
session.connect();  

channel = session.openChannel("shell");  
fromServer = new BufferedReader(new InputStreamReader(channel.getInputStream()));  
toServer = channel.getOutputStream();
channel.connect();  
toServer.write((command + "\r\n").getBytes());
toServer.flush();

et puis j'ai lu entrée comme ceci:

StringBuilder builder = new StringBuilder();  

int count = 0;  
String line = "";  

while(line != null) {  
    line = fromServer.readLine();
    builder.append(line).append("\n");

    if (line.endsWith(".") || line.endsWith(">")){
        break;
    }
}  
String result = builder.toString();  
ConsoleOut.println(result);
  • Quel est le message d'erreur? Est-il un suivi de pile?
  • Il n'y a pas de message d'erreur, j'ai juste ne pas obtenir n'importe quel message de retour. Le programme s'arrête à la ligne = fromServer.readLine(), ce qui signifie que le message n'a pas été envoyé...au moins, je crois...
  • Mai de cette aide: jcraft.com/jsch/examples
  • 🙂 Je travaillais à la suite de ces exemples... Thnx anw:)
  • L'échantillon est jcraft.com/jsch/examples/Shell.java, ça marche vraiment bien. Elle ne fait qu'Système.dans et du Système.qui trouver leur chemin entre les canalisations de ruisseaux et de la console. Mais quand je me suis connecté à l'hôte distant via ssh, BufferedReader.readLine() ne serait jamais retourné. Autour de a été de lire bloc d'octets au lieu de chaînes de caractères et de la construction de Chaîne manuellement.
InformationsquelleAutor Nezzit | 2010-11-16