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 の一般的なエラー出力です。sudoとの両方ipfwがランタイム環境のパス上にあることを確認してください。

または、フル パスの場所を指定することもできます。

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

のパスワードを書くと、コマンドsudoにパスワードを含めることができますが、これには明らかなセキュリティ上のリスクがあります(!)

1 つの解決策は、アプリケーションからパスワードを読み取ることです。

于 2012-08-22T16:27:03.327 に答える
0

ipfw /sbin/ipfw へのフル パスと、場合によっては sudo も試してみます。

1 つの質問は、このようなパスワードの入力にどのように対処する予定ですか?

于 2012-08-22T16:26:19.473 に答える