В моем проекте у меня есть файл класса Java, внутри которого у меня есть подпрограмма, которая выполняет следующий внешний файл сценария SFTP:
#!/bin/sh
echo "cd AV/OASIS" >> sftp
echo "put $1 $2" >> sftp
echo "get AV/OASIS/$2 $3$2" >> sftp
echo "bye" >> sftp
/usr/local/bin/sftp -b sftp id@domain
cat /dev/null > sftp
exit 0
Код Java, который выполняет файл сценария, выглядит следующим образом:
String script = "full path of script";
Process p = Runtime.getRuntime().exec(script + " " + param1 + " " + param2 + " " + param3);
Однако я не уверен, почему, но журнал, сгенерированный файлом класса, всегда показывает ошибку " Ошибка проверки ключа хоста. Соединение закрыто. "
Я выделил эту строку в скрипте, который подключался к удаленному компьютеру, и запустил ее на локальном компьютере (где хранятся этот файл класса и файл сценария), и команда успешно выполнена
Я бы вручную запустил команду, которую будет выполнять файл класса Java, и он также протестировал:
$ script.sh param1 param2 param3
Я попытался найти сообщение об ошибке в Интернете, и, похоже, оно как-то связано с known_hosts. Может ли это быть причиной, или я скучаю по чему-то еще?
Большое спасибо!