我有一个sh文件,其中包含许多sudo命令,比如下面的脚本:
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命令?请分享。
答案 0 :(得分:2)
以及脚本将输出提示输出到屏幕,将有必要捕获进程输入流
InputStream stdout = process.getInputStream ();
我还建议使用
ProcessBuilder builder = new ProcessBuilder("/home/user/test.sh");
builder.redirectErrorStream(true);
Process process = builder.start();