2012-08-22 127 views
1

我要在我与Java的防火墙添加一些规则的设置,我想用java来执行此命令:Mac的防火墙与Java

String [] cmd = {"sudo ipfw delete 100 "}; 
Runtime.getRuntime().exec(cmd); 

但我得到这个错误

无法运行程序“sudo ipfw delete 100”:error = 2,没有这样的文件或目录

任何建议吗?

+1

的_program_未命名“命令的ipfw删除100”,而是“须藤”。 –

回答

0

我会尝试ipfw/sbin/ipfw的完整路径,也可能是sudo。

一个问题是你打算如何处理输入密码?

+0

多数民众赞成在另一个问题,我不知道我应该如何输入密码! – user1561133

+0

一点点阅读材料http://www.coderanch.com/t/517209/java/java/provide-password-prompt-through-Java你也可能想研究sudo命令 - 在OS X上打开以查看是否你可以用它弹出一个密码对话框。 http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/sudo.8.html – Mike

1

这是* nix平台上的Runtime.exec的常见错误输出。确保sudoipfw位于您的运行时环境中。

另外,您可以指定完整路径位置:

String [] cmd = {"/path_to_sudo/sudo", "/path_to_ipfw/ipfw", "delete", "100"}; 

WRT密码为sudo,你可以有密码in your command虽然有这种明显的安全风险

一个解决方案(!)是从您的应用程序读取密码。

+0

感谢您的回答:-) – user1561133