我正在尝试使用 java 1.8 和 OS Solaris 11 运行一个简单的命令。我的程序在特定用户下运行,并且该命令必须在 SuperUser 下运行
这是命令:
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
}
我认为该行等于 null 因为密码集中的某些内容不正确蝙蝠我不确定
我做错了什么?
Smart猫小萌
MYYA
相关分类