如何在Java中以root权限运行shell命令

时间:2011-11-05 16:36:47

标签: java shell root

我需要使用root权限在Java中运行shell命令(在我的情况下为ipfw)。我使用ProcessBuilder来运行没有权限的命令:

Process p = new ProcessBuilder("ls","/").start();

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

String s;
while((s=br.readLine()) != null) {
    System.out.println(s);
}

此代码工作正常但我需要运行类似sudo root命令的内容。我该怎么办?

我需要在Eclipse,Mac OS X 10.6.8

中运行该程序

编辑:现在我从终端使用sudo java nameclass ,但这样我必须手动添加所有引用的类。

1 个答案:

答案 0 :(得分:5)

容易!

  1. sudoers设置为ipfw不需要密码:

    user = NOPASSWD: /usr/sbin/ipfw
    
  2. 照常使用sudo