2011-11-05 144 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

相關問題