2011-11-05 146 views
2

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

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根命令。我能怎么做?

我需要运行这个程序在Eclipse中的Mac OS X 10.6.8

编辑:现在我用sudo javanameclass从终端,但这种方式我必须手动添加所有引用的类。

回答

5

简单!

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

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

+0

如何设置sudoers? – Baduel

+0

'sudo visudo'。编辑你心中的内容。 –

+0

我是否必须在'#用户特权规范'下添加此行? – Baduel

相关问题