猿问

如何在Java中使用sudo权限执行bash命令?

如何在Java中使用sudo权限执行bash命令?

我正在使用ProcessBuilder来执行bash命令:

import java.io.IOException;public class Main {
    public static void main(String[] args) {
        try {
            Process pb = new ProcessBuilder("gedit").start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }}

但我想做这样的事情:

Process pb = new ProcessBuilder("sudo", "gedit").start();

如何将超级用户密码传递给bash?

("gksudo", "gedit") 不会这样做,因为它已经被删除,因为Ubuntu 13.04并且我需要使用默认命令可用。

编辑

gksudo在最后一次更新时回到了Ubuntu 13.04。


Helenr
浏览 1362回答 3
3回答

一只萌萌小番薯

我想你可以使用它,但我有点犹豫要发布它。所以我只想说:使用此风险自负,不推荐,不要起诉我等等......public static void main(String[] args) throws IOException {     String[] cmd = {"/bin/bash","-c","echo password| sudo -S ls"};     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();}
随时随地看视频慕课网APP
我要回答