Я выполняю команду из java-программы, например
Process myProcess = Runtime.getRuntime().exec("sudo cat /etc/sudoers"); //It asks for password so I send password through outputstream from my program.
InputStream inputStream = myProcess.getInputStream();
OutputStream outputStream = myProcess.getOutputStream();
outputStream.write("mypassword".getBytes()); // write password in stream
outputStream.flush();
outputStream.close();
Но проблема в том, что он снова запрашивает у меня пароль, так как я уже отправляю пароль через поток вывода из моей программы. Для решения этого я пытался так много раз, но на самом деле не сделал.
Используя сценарий оболочки, я могу указать пароль для терминала, и моя программа работает нормально, но это не самый гибкий способ.
Можете ли вы предложить мне какой-либо способ предоставления пароля через мою программу Java? (вместо программирования оболочки)
\n
символ после пароля? Внешнему приложению может потребоваться завершить ввод с помощьюCR
и/илиLF
. - person npe   schedule 30.05.2012