0

行を入力すると:

sed -i 's/DNS1="8.8.8.8"/DNS1="8.8.4.4"/' /etc/sysconfig/network-scripts/ifcfg-eth0

目的の結果が得られます (つまり、8.8.8.8 が 8.8.4.4 に置き換えられます) が、次のように同じコマンドを渡す Java プログラムがあります。

public static void swapDns() throws IOException, InterruptedException 
{
    Runtime rt = Runtime.getRuntime();
    Process ps;

    String cmd[] = {"sed","-i","'s/DNS1=\"8.8.8.8\"/DNS1=\"8.8.4.4\"/'","/etc/sysconfig/network-scripts/ifcfg-eth0"};
    ps = rt.exec(cmd);
} 

そしてそれはうまくいきません。何も変わりません。sed/javaに問題がありますか、それとも何か不足していますか...

4

1 に答える 1

2

Java プログラムは、おそらく sed がパスにない別の環境で実行されますか? または、ネットワーク スクリプトへの書き込み権限を持たないユーザーとして実行されている可能性がありますか?

于 2013-08-01T20:20:33.817 に答える