Я только изучаю Java и Jsch, и я могу заставить его запускать другие команды, но не CD. Код ошибки, возвращаемый функцией SSHManager sendCommand, не является нулевым, а представляет собой некоторую нечитаемую строку, которая каждый раз отличается (возможно, это означает, что она не знакома с внутренней работой Java).
Любая идея, почему не? Подобный вопрос здесь JSch - Почему CD не работает? , но без ответа.
Я не буду копировать и вставлять весь класс SSHManager здесь - полезный ответ с полным кодом, что я пытаясь следовать. Выполнить команду через S SH с JSch
Пример кода ниже:
import SSH.SSHManager;
public class src
{
int ERROR = 0;
public static void main(String[] args)
{
String username = "debian";
String password = "temppwd";
String ipadd = "192.168.7.2";
SSHManager ssh = new SSHManager(username, password, ipadd, "");
ssh.connect();
String out = "";
//this doesn't work, printing output as bytes to show how weird it is
out = ssh.sendCommand("cd Desktop");
System.out.println(out.getBytes());
//some other test commands
out = ssh.sendCommand("mkdir test");
System.out.println(out);
out = ssh.sendCommand("ls");
System.out.println(out);
ssh.sendCommand("logout");
}
}
Вывод из консоли Eclipse (bin и Desktop уже есть в root каталог):
[B@b065c63
bin
Desktop
test