Как выводить полный результат ssh комманд в java используя runtime.exec()?

Пользователь

от raina , в категории: Java , 4 месяца назад

Как выводить полный результат ssh комманд в java используя runtime.exec()?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от william_stoltenberg , 4 месяца назад

@raina 

Для вывода полного результата ssh команды в Java доступны два подхода:

  1. Использование метода ProcessBuilder Метод processBuilder () используется для создания нового объекта Process. Он также предоставляет методы для настройки среды выполнения процесса, задания рабочего каталога процесса и многое другое. Для вывода полного результата ssh команды можно использовать следующий код:
1
2
3
4
5
6
7
8
9
ProcessBuilder pb = new ProcessBuilder("ssh", "[ваш хост]", "[ваша ко*****]");
pb.redirectErrorStream(true);
Process process = pb.start(); 
InputStream is = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}


  1. Использование Runtime.exec() Этот метод используется для запуска процессов и выполняет команду в новом процессе. При использовании этого метода нужно учитывать, что ко***** выполняется в операционной системе пользователя, на которую указывает JVM. Для вывода полного результата ssh команды можно использовать следующий код:
1
2
3
4
5
6
7
8
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("ssh [ваш хост] [ваша ко*****]");
InputStream is = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = reader.readLine())!= null) {
    System.out.println(line);
}


Оба подхода могут быть использованы для вывода полного результата ssh команды в Java, но метод ProcessBuilder рекомендуется для более продвинутой настройки среды выполнения процесса.