我要用防火墙在java中添加一些规则,我想用java执行这个命令:
String [] cmd = {"sudo ipfw delete 100 "};
Runtime.getRuntime().exec(cmd);
但是我收到了这个错误
无法运行程序“sudo ipfw delete 100”:error = 2,没有这样的文件或目录
有什么建议吗?
答案 0 :(得分:1)
这是* nix平台上Runtime.exec的常见错误输出。确保运行时环境中的sudo
和ipfw
都在您的路径上。
或者,您可以指定完整路径位置:
String [] cmd = {"/path_to_sudo/sudo", "/path_to_ipfw/ipfw", "delete", "100"};
使用sudo
的密码,您可以输入密码in your command,但这有明显的安全风险(!)
一种解决方案是从您的应用程序中读取密码。
答案 1 :(得分:0)
我会尝试ipfw / sbin / ipfw以及可能的sudo的完整路径。
一个问题是你打算如何处理这样输入密码?