До сих пор мне удалось подключиться, запустить одну команду, а затем отключиться. Проблема, с которой я столкнулась, теперь выполняет вторую, третью и т. Д. Команду.выполнить несколько команд на удаленном сервере
public static void main(String args[]) {
try {
JSch js = new JSch();
Session session = js.getSession("myuser", "myhost", 22);
session.setPassword("mypassword");
Properties properties = new Properties() {
{
put("StrictHostKeyChecking", "no");
}
};
session.setConfig(properties);
session.connect();
Channel channel = session.openChannel("exec");
ChannelExec channelExec = (ChannelExec) channel;
channelExec.setCommand("ls");
channelExec.setErrStream(System.err);
channelExec.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(channelExec.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// This part doesn't work. It causes the program to hang.
// BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(channelExec.getOutputStream()));
// writer.write("cd Downloads");
// writer.write("ls");
// reader = new BufferedReader(new InputStreamReader(channelExec.getInputStream()));
// while ((line = reader.readLine()) != null) {
// System.out.println(line);
// }
channelExec.disconnect();
session.disconnect();
System.out.println("Exit code: " + channelExec.getExitStatus());
} catch (JSchException | IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
Я попытался с помощью OutputStream
но это только вызвало программа ничего не делать, так что я подозреваю, что это не путь.
Что следует добавить для печати содержимого, следующего за командами cd Downloads
и ls
, например, после того, как был напечатан первый вывод ls
?
вы могли бы быть более конкретными. Где вы пытались подключиться, ssh или какой-нибудь другой? – Laksith
Код, который вы разместили, выглядит так, как будто он выполняет только одну команду, поэтому я думаю, что он работает нормально? Не могли бы вы отредактировать сообщение, чтобы содержать код, который вы написали, который не работает? И объясните, как это происходит? – Kenster
@ Laksith: Да, SSH – Hooli