Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java类在ubuntu中执行sudo命令_Java_Linux_Ubuntu_Terminal_Sudo - Fatal编程技术网

从java类在ubuntu中执行sudo命令

从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"); 有人想到

我有一个包含许多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");

有人想到从java类执行这个sudo命令吗?请共享。

由于脚本将向屏幕输出提示,因此有必要捕获进程inputstream

InputStream stdout = process.getInputStream ();
我还建议使用

ProcessBuilder builder = new ProcessBuilder("/home/user/test.sh");
builder.redirectErrorStream(true);
Process process = builder.start();

我没有得到任何提示。老实说,我会从一个shell开始,而不是脚本。看看这个链接