Я пытаюсь запустить команду для чтения строки из файла внутри удаленного адреса (и я уверен, что файл там есть), эта команда работает, когда я запускаю ее на bash, но она не работает, когдаЯ запускаю его в своем java-коде.
Runtime rt = Runtime.getRuntime();
String[] command;
String line;
try {
command = new String[] {"sh", "-c", "\"sshpass " + "-p " + password + " ssh " + user + "@" + ip + " 'cat " + file.getAbsolutePath() + "'\"" };
Process mountProcess = rt.exec(command);
mountProcess.waitFor();
bufferedReader = new BufferedReader(new InputStreamReader(mountProcess.getInputStream()));
while ((line = bufferedReader.readLine()) != null) {
user_list.put(user, line);
}
bufferedReader.close();
bufferedReader = new BufferedReader(new InputStreamReader(mountProcess.getErrorStream()));
while ((line = bufferedReader.readLine()) != null) {
LOGGER.debug("Stderr: " + line);
}
bufferedReader.close();
} catch ...
В мой user_list строка не добавлена (поэтому строка из getInputStream равна нулю), и я получаю следующую ошибку от регистратора в коде:
Stderr: sh: 1: sshpass: not found
Если я использую ту же самую команду в bash, она сработает и напечатает нужную мне строку.
sshpass -p password ssh remote@192.168.1.10 'cat /home/ID/ID'
Кто-нибудь знает, почему это происходит?спасибо!