从java类在ubuntu中执行sudo命令
我有一个包含许多sudo命令的sh文件,比如下面的脚本:从java类在ubuntu中执行sudo命令,java,linux,ubuntu,terminal,sudo,Java,Linux,Ubuntu,Terminal,Sudo,我有一个包含许多sudo命令的sh文件,比如下面的脚本: test.sh #!/bin/sh sudo apt-get install gedit sudo date --set="2014/02/20 10:00" 当我从终端执行test.sh时,它工作正常。问题是当我试图从java类执行这个文件时。脚本不执行。我试过这个: Process proc = Runtime.getRuntime().exec("/bin/sh","/home/priyatam/test.sh"); 有人想到
test.sh
#!/bin/sh
sudo apt-get install gedit
sudo date --set="2014/02/20 10:00"
当我从终端执行test.sh时,它工作正常。问题是当我试图从java类执行这个文件时。脚本不执行。我试过这个:
Process proc = Runtime.getRuntime().exec("/bin/sh","/home/priyatam/test.sh");
有人想到从java类执行这个sudo命令吗?请共享。由于脚本将向屏幕输出提示,因此有必要捕获进程inputstream
InputStream stdout = process.getInputStream ();
我还建议使用
ProcessBuilder builder = new ProcessBuilder("/home/user/test.sh");
builder.redirectErrorStream(true);
Process process = builder.start();
我没有得到任何提示。老实说,我会从一个shell开始,而不是脚本。看看这个链接