Я пытаюсь запустить простую команду, используя java 1.8 и ОС Solaris 11.
Моя программа запускается под определенным пользователем, а команда должна запускаться с правами суперпользователя
вот команда:
Runtime.getRuntime().exec("su - root -c 'pargs -l 1111'");
если я запускаю команду, она будет работать нормально, спрашивать пароль и, когда я введу пароль, я получу результат.
проблема в том, что я запускаю его в Java
вот мой код
Process proc = Runtime.getRuntime().exec("su - root -c 'pargs -l 1111'");
PrintWriter out = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
out.println(password);
out.flush();
int exitCode= proc.waitFor();
System.out.println(exitCode);//exitCode = 1
BufferedReader pArgs= new BufferedReader( new InputStreamReader(proc.getInputStream()));
if((line=pArgs.readLine()) != null)
{
//do something
}
else
{
//something not working = ERROR
}
я думаю, что строка равна нулю, потому что в наборе пароля что-то не так, но я не уверен
что я делаю не так?