当前位置: 首页 > 知识库问答 >
问题:

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

施锋
2023-03-14

我正在使用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();

编辑

gksudo带着最后一次更新回到了Ubuntu13.04。

共有1个答案

鲁浩渺
2023-03-14

我想你可以用这个,但我有点犹豫要不要贴。所以我只想说:

使用这个风险自负,不推荐,不要告我等...

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();
}
 类似资料:
  • 问题内容: 我正在使用ProcessBuilder执行bash命令: 但我想做这样的事情: 如何将超级用户密码传递给bash? 不会解决这个问题,因为它是从Ubuntu 13.04开始删除的,我需要使用默认命令来执行此操作。 编辑 gksudo在最近的更新中回到了Ubuntu 13.04。 问题答案: 我想您可以使用它,但是我有点犹豫要发布它。所以我只想说: 使用此方法后果自负,不建议您使用,请勿

  • 问题内容: 自寻找以来已经有一段时间了,但找不到解决方案。我试图在.jar文件中的Linux上执行bash命令。为此,我尝试了很多事情,包括: 因此,当我单击.jar文件时,我希望程序打开bash并执行命令(java -jar …),以执行程序的另一部分。 关于如何做的任何想法? 问题答案: 要了解这一点,您首先需要了解如何在shell提示符下运行该命令。 请注意双引号在哪里。第一个参数是。第二个

  • 问题内容: 我正在尝试从Ruby on Rails应用程序执行以下命令: sudo服务squid3重新启动 如果我尝试使用此代码: 它不起作用,在控制台中,我看到linux要求输入密码。如何通过此命令传递密码?或其他建议… 问题答案: 您可以尝试使用sudo -S标志(如果系统上可用)(请检查人员): 这意味着密码将是清楚的,因此您可以将需要执行任务的用户添加到sudoers中(顺便说一句,这会引

  • 我在javafx中开发应用程序,我尝试在终端中使用命令打开一个应用程序,我使用我的java代码运行命令我的命令有一些变量它有我的安装程序文件的路径,这将不总是相同的,因为随着构建的更新,文件名可能会不同。 这里有一个示例,我如何运行命令它不是我运行的确切命令,但命令格式是相同的。 这个过程没有给出任何输出,它停在那里,什么也没有发生。同样的命令,我已经尝试从终端和它的工作很好。 我已经尝试了这个链

  • 我正在从ubuntu创建一个docker文件:仿生图像。 我想要一个具有sudo权限的ubuntu用户。 这是我的文件 但是有了这个密码,我需要写下ubuntu用户的密码。 有一种方法可以通过命令行将NOPASSWD子句添加到sudoers文件中的sudo组?

  • 我有下面的课。它允许我通过java执行命令。 当我运行命令时,上一个命令的结果没有保存。例如: 给出输出: 为什么第二个“ls”命令不显示“bin”目录的内容?