我有一个 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 命令?请分享。
最佳答案
由于脚本会将提示输出到屏幕,因此有必要捕获进程输入流
InputStream stdout = process.getInputStream ();
我也推荐使用
ProcessBuilder builder = new ProcessBuilder("/home/user/test.sh");
builder.redirectErrorStream(true);
Process process = builder.start();
关于java - 从java类在ubuntu中执行sudo命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898072/