我有一个要求,我需要在swing UI中单击按钮时,使用sudo在ubuntu中运行脚本。
在Mac中,我只将open命令与Runtime.getRuntime.exec("open appname.app")
,它会启动一个终端,要求我输入密码并执行脚本,但是在Linux中,它不能那样工作。
我已经在How to execute bash command with sudo privileges in Java?中尝试了该解决方案,但对我不起作用。
public static void main(String[] args) throws IOException {
String[] cmd = {"/bin/bash","-c","echo mysudopassword| sudo -S <path of my script>"};
Process pb = Runtime.getRuntime().exec(cmd);
String line;
BufferedReader input = new BufferedReader(new InputStreamReader(pb.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
}
甚至如下尝试过
{"/bin/bash","-c","echo \"password\"| sudo -S ls"};
是否可以将密码传递给sudo然后启动脚本或打开终端要求输入密码然后启动它?
我正在将Java8与ubuntu 18.04一起使用