sed不能从java程序工作,但输入行从终端工作

时间:2013-08-01 20:18:49

标签: java linux sed

当我进入该行时:

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替换),但是,我有一个jave程序,它传递的命令如下所示:

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的问题,或者我错过了什么......

1 个答案:

答案 0 :(得分:2)

Java程序是否可能使用不同的环境运行,也许是sed不在路径中的环境?否则,它可能作为没有网络脚本写入权限的用户运行?