Я хочу запустить эту команду из java, но я не могу этого сделать. Не могли бы вы мне помочь? Когда я пытаюсь запустить это из ssh, он отлично работает.
String cmd = "myprog -t << EOF show version EOF";
Процесс p = Runtime.getRuntime(). Exec (cmd);
Ваша команда записывает стандарт в ваш процесс. Вы могли бы просто написать этот процесс из своего Java-кода. Что-то вроде,
String cmd = "myprog -t";
String arg = "show version";
try {
Process p = Runtime.getRuntime().exec(cmd);
PrintStream ps = new PrintStream(p.getOutputStream());
ps.println(arg);
ps.flush();
final StringBuilder sb = new StringBuilder();
final InputStream is = p.getInputStream();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try (BufferedReader br = new BufferedReader(
new InputStreamReader(is))) {
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append(System.lineSeparator());
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
t.start();
try {
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}