java - 从java类在ubuntu中执行sudo命令

标签 java linux ubuntu terminal sudo

我有一个 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/

相关文章:

java字符串排列组合查找

ruby - 在 Fedora linux 上使用 rvm 安装 Ruby 2.0.0 的问题

ruby - 备份 gem 的问题

linux - g77 编译错误(找不到 crt1.o、crti.o、-lgcc_s)

ubuntu - Debian - 未找到 g++-mingw-w64

python - Matplotlib 动画 MovieWriters 在 Ubuntu 12.04 上失败

linux - 是否可以为传入的 Syslog 事件指定一个唯一的文件?

java - Spring 启动: Multiple datasource - Server Terminates before starting

java - log4j 正则表达式? [{}]

java - 如何编写一个从键盘读取输入(最多 40 个数字)并在 (-999) 处停止读取的方法