Non riesco a capire come posso inviare comandi tramite il canale di shell JSch.Invio di comandi al server tramite il canale di shell JSch
faccio questo, ma non funziona:
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();
e poi ho letto di input in questo modo:
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);
Qual è il messaggio di errore? C'è uno stacktrace? –
Non c'è nessun messaggio di errore, non riesco a recuperare alcun messaggio. Il programma si arresta su line = fromServer.readLine(), witch indica che il messaggio non è stato inviato ... almeno, penso di sì ... – Nezzit
Questo può aiutare: http://www.jcraft.com/jsch/examples/ –