1

我要用java在我的防火墙中添加一些规则,我想用java执行这个命令:

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

但我得到这个错误

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

有什么建议吗?

4

2 回答 2

1

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

或者,您可以指定完整路径位置:

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

Wrt 的密码sudo,您可以在命令中使用密码,尽管 this(!) 存在明显的安全风险

一种解决方案是从您的应用程序中读取密码。

于 2012-08-22T16:27:03.327 回答
0

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

一个问题是您打算如何处理输入这样的密码?

于 2012-08-22T16:26:19.473 回答