Опитвам се да напиша малко Java приложение, което ще презапише моя /etc/resolv.conf
файл (аз съм на Ubuntu 12.04). За целта трябва да въведа паролата си root
:
myUser@myMachine:~$ sudo vim /etc/resolv.conf
[sudo] password for myUser: *****
Така че процесът за това има три стъпки:
- Въведете
sudo vim /etc/resolv.conf
на терминала - Терминалът ме моли да напиша паролата си
root
- Въвеждам паролата и натискам
[Enter]
От всичко, което проучих, мога да използвам следното за изпълнение на стъпка №1 по-горе:
try {
String installTrickledCmd = "sudo vim /etc/resolv.conf";
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(installTrickledCmd);
}
catch(Throwable throwable) {
throw new RuntimeException(throwable);
}
Но когато това се изпълни, обвивката ще иска да подкани моя Java процес за паролата. Не съм сигурен как да изчакам това (стъпка #2 по-горе) и след това да върна паролата си обратно в обвивката (стъпка #3 по-горе). Благодаря предварително.
echo
-въвеждате паролата, можете също да използватеProcess.getOutputStream()
и след това напишете паролата за този поток. - person JimmyB   schedule 24.12.2012