我要在我与Java的防火墙添加一些规则的设置,我想用java来执行此命令:Mac的防火墙与Java
String [] cmd = {"sudo ipfw delete 100 "};
Runtime.getRuntime().exec(cmd);
但我得到这个错误
无法运行程序“sudo ipfw delete 100”:error = 2,没有这样的文件或目录
任何建议吗?
我要在我与Java的防火墙添加一些规则的设置,我想用java来执行此命令:Mac的防火墙与Java
String [] cmd = {"sudo ipfw delete 100 "};
Runtime.getRuntime().exec(cmd);
但我得到这个错误
无法运行程序“sudo ipfw delete 100”:error = 2,没有这样的文件或目录
任何建议吗?
我会尝试ipfw/sbin/ipfw的完整路径,也可能是sudo。
一个问题是你打算如何处理输入密码?
多数民众赞成在另一个问题,我不知道我应该如何输入密码! – user1561133
一点点阅读材料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
这是* nix平台上的Runtime.exec的常见错误输出。确保sudo
和ipfw
位于您的运行时环境中。
另外,您可以指定完整路径位置:
String [] cmd = {"/path_to_sudo/sudo", "/path_to_ipfw/ipfw", "delete", "100"};
WRT密码为sudo
,你可以有密码in your command虽然有这种明显的安全风险
一个解决方案(!)是从您的应用程序读取密码。
感谢您的回答:-) – user1561133
的_program_未命名“命令的ipfw删除100”,而是“须藤”。 –